SlideShare a Scribd company logo
1 of 25
Eggplant AIトレーニング
レッスン3
Snippets
© Copyright 2018 eggplant software
© Copyright 2018 Eggplant
パート1:
Snippetsとは?
• Eggplant Functional のスクリプトまたはスクリプト内のハンドラー
• 対話型コードまたは非対話型コード
• 1行のコード、または必要な長さのコード
• フュージョン自動化エンジン
© Copyright 2018 Eggplant 3
What Are Snippets?
© Copyright 2018 Eggplant
パート2:
Eggplant Functional
Snippetsの作成
• Autoscan と Autosnippetsで作成する。
• 臨機応変(特別な方法)に作成する。
• すべてのSnippetsをカスタマイズする。
© Copyright 2018 Eggplant 5
Snippet Creation
© Copyright 2018 Eggplant 6
Autoscan and Autosnippets
Using Autoscan and Autosnippets
• 1つのアプリケーション画面または画面セク
ションは1つのEggplant Functional
Autoscanセッションと関連している。
• Eggplant Functional Viewer ウィンド
ウに画面を表示する。
© Copyright 2018 Eggplant 7
Using Autoscan and Autosnippets
• Autoscan Entire Screen と
Autoscan Capture Area
8© Copyright 2018 Eggplant
© Copyright 2018 Eggplant 9
Using Autoscan and Autosnippets
Delete
Slider Delete
© Copyright 2018 Eggplant 10
Using Autoscan and Autosnippets
© Copyright 2018 Eggplant 11
Using Autoscan and Autosnippets
© Copyright 2018 Eggplant 12
Using Autoscan and Autosnippets
© Copyright 2018 Eggplant 13
Customizing Autosnippets
© Copyright 2018 Eggplant 14
Customizing Autosnippets
© Copyright 2018 Eggplant 15
Customizing Autosnippets
© Copyright 2018 Eggplant 16
Ad-hoc Snippets
© Copyright 2018 Eggplant
パート3:
SnippetsをActionsとStatesへ
関連付ける
© Copyright 2018 Eggplant 18
Snippets Tab
© Copyright 2018 Eggplant 19
Linking a Model to a Suite
Linking a Model to a Suite
© Copyright 2018 Eggplant 20
Linking Snippets
© Copyright 2018 Eggplant 21
Snippets Interface
© Copyright 2018 Eggplant 22
© Copyright 2018 Eggplant 23
Snippet Inputs and Outputs
© Copyright 2018 Eggplant 24
Linking Snippets to a Model
© Copyright 2018 Eggplant
レッスン3終了

More Related Content

More from Eggplant

Eggplant Functional - Lesson 5 (Japanese slides)
Eggplant Functional - Lesson 5 (Japanese slides)Eggplant Functional - Lesson 5 (Japanese slides)
Eggplant Functional - Lesson 5 (Japanese slides)Eggplant
 
Eggplant Functional - Lesson 6 (Japanese slides)
Eggplant Functional - Lesson 6 (Japanese slides)Eggplant Functional - Lesson 6 (Japanese slides)
Eggplant Functional - Lesson 6 (Japanese slides)Eggplant
 
Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)Eggplant
 
Eggplant Functional - Lesson 11 (Japanese slides)
Eggplant Functional - Lesson 11 (Japanese slides)Eggplant Functional - Lesson 11 (Japanese slides)
Eggplant Functional - Lesson 11 (Japanese slides)Eggplant
 
Eggplant Functional - Lesson 7 (Japanese slides)
Eggplant Functional - Lesson 7 (Japanese slides)Eggplant Functional - Lesson 7 (Japanese slides)
Eggplant Functional - Lesson 7 (Japanese slides)Eggplant
 
Eggplant Functional - Lesson 8 (Japanese slides)
Eggplant Functional - Lesson 8 (Japanese slides)Eggplant Functional - Lesson 8 (Japanese slides)
Eggplant Functional - Lesson 8 (Japanese slides)Eggplant
 
Eggplant Functional - Lesson 9 (Japanese slides)
Eggplant Functional - Lesson 9 (Japanese slides)Eggplant Functional - Lesson 9 (Japanese slides)
Eggplant Functional - Lesson 9 (Japanese slides)Eggplant
 
Eggplant AI - Lesson 6 Slides (Japanese)
Eggplant AI - Lesson 6 Slides (Japanese)Eggplant AI - Lesson 6 Slides (Japanese)
Eggplant AI - Lesson 6 Slides (Japanese)Eggplant
 
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​Eggplant
 
AI based Testing in Finance & Retail Breakfast Briefing
AI based Testing in Finance & Retail Breakfast BriefingAI based Testing in Finance & Retail Breakfast Briefing
AI based Testing in Finance & Retail Breakfast BriefingEggplant
 
6 Top Tips to a Testing Strategy That Works
6 Top Tips to a Testing Strategy That Works6 Top Tips to a Testing Strategy That Works
6 Top Tips to a Testing Strategy That WorksEggplant
 
Importance of testing for the business
Importance of testing for the businessImportance of testing for the business
Importance of testing for the businessEggplant
 
Test Automation Beyond Test Execution
Test Automation Beyond Test ExecutionTest Automation Beyond Test Execution
Test Automation Beyond Test ExecutionEggplant
 
Automation As An Ally
Automation As An AllyAutomation As An Ally
Automation As An AllyEggplant
 
Digital Nation: United We Stand
Digital Nation: United We StandDigital Nation: United We Stand
Digital Nation: United We StandEggplant
 
GUI Performance Regression Testing with Eggplant Functional
GUI Performance Regression Testing with Eggplant FunctionalGUI Performance Regression Testing with Eggplant Functional
GUI Performance Regression Testing with Eggplant FunctionalEggplant
 
The Future Is Bright
The Future Is BrightThe Future Is Bright
The Future Is BrightEggplant
 
Turn Performance Testing up to 11
Turn Performance Testing up to 11Turn Performance Testing up to 11
Turn Performance Testing up to 11Eggplant
 
6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem Final6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem FinalEggplant
 

More from Eggplant (20)

Eggplant Functional - Lesson 5 (Japanese slides)
Eggplant Functional - Lesson 5 (Japanese slides)Eggplant Functional - Lesson 5 (Japanese slides)
Eggplant Functional - Lesson 5 (Japanese slides)
 
Eggplant Functional - Lesson 6 (Japanese slides)
Eggplant Functional - Lesson 6 (Japanese slides)Eggplant Functional - Lesson 6 (Japanese slides)
Eggplant Functional - Lesson 6 (Japanese slides)
 
Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)
 
Eggplant Functional - Lesson 11 (Japanese slides)
Eggplant Functional - Lesson 11 (Japanese slides)Eggplant Functional - Lesson 11 (Japanese slides)
Eggplant Functional - Lesson 11 (Japanese slides)
 
Eggplant Functional - Lesson 7 (Japanese slides)
Eggplant Functional - Lesson 7 (Japanese slides)Eggplant Functional - Lesson 7 (Japanese slides)
Eggplant Functional - Lesson 7 (Japanese slides)
 
Eggplant Functional - Lesson 8 (Japanese slides)
Eggplant Functional - Lesson 8 (Japanese slides)Eggplant Functional - Lesson 8 (Japanese slides)
Eggplant Functional - Lesson 8 (Japanese slides)
 
Eggplant Functional - Lesson 9 (Japanese slides)
Eggplant Functional - Lesson 9 (Japanese slides)Eggplant Functional - Lesson 9 (Japanese slides)
Eggplant Functional - Lesson 9 (Japanese slides)
 
Eggplant AI - Lesson 6 Slides (Japanese)
Eggplant AI - Lesson 6 Slides (Japanese)Eggplant AI - Lesson 6 Slides (Japanese)
Eggplant AI - Lesson 6 Slides (Japanese)
 
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
Strategy vs. Tactical Testing: Actions for Today, Plans for Tomorrow​
 
AI based Testing in Finance & Retail Breakfast Briefing
AI based Testing in Finance & Retail Breakfast BriefingAI based Testing in Finance & Retail Breakfast Briefing
AI based Testing in Finance & Retail Breakfast Briefing
 
6 Top Tips to a Testing Strategy That Works
6 Top Tips to a Testing Strategy That Works6 Top Tips to a Testing Strategy That Works
6 Top Tips to a Testing Strategy That Works
 
Importance of testing for the business
Importance of testing for the businessImportance of testing for the business
Importance of testing for the business
 
Shift Up
Shift Up Shift Up
Shift Up
 
Test Automation Beyond Test Execution
Test Automation Beyond Test ExecutionTest Automation Beyond Test Execution
Test Automation Beyond Test Execution
 
Automation As An Ally
Automation As An AllyAutomation As An Ally
Automation As An Ally
 
Digital Nation: United We Stand
Digital Nation: United We StandDigital Nation: United We Stand
Digital Nation: United We Stand
 
GUI Performance Regression Testing with Eggplant Functional
GUI Performance Regression Testing with Eggplant FunctionalGUI Performance Regression Testing with Eggplant Functional
GUI Performance Regression Testing with Eggplant Functional
 
The Future Is Bright
The Future Is BrightThe Future Is Bright
The Future Is Bright
 
Turn Performance Testing up to 11
Turn Performance Testing up to 11Turn Performance Testing up to 11
Turn Performance Testing up to 11
 
6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem Final6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem Final
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (9)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

Eggplant AI - Lesson 3 Slides (Japanese)

Editor's Notes

  1. Eggplant AIトレーニングコースのレッスン3では、Snippetについて説明します。Eggplant AIModelがアプリケーションをテストするためのEggplant Functionalコードのことです。このレッスンでは、有用なEggplant機能のSnippetを作成する方法について説明しますが、このトレーニングコースではEggplant機能についての説明は最小限にとどめています。Eggplant AIを最大限に活用するためには、Eggplant Functionalをしっかりと理解しておくことが重要です。Eggplant FunctionalのドキュメントとEggplant Functionalトレーニングコースへのリンクは、このレッスンの「リソース」セクションにあります。 新しいModelを作成する際に、ModelにSnippetをアタッチすると、Modelをデバッグしたり、テスト中のアプリケーションを意味のある方法で表現したりするのに役立ちます。レッスン3では、Snippetを作成してModelにアタッチすることで、レッスン2で開始したModelを拡張します。
  2. では、Snippetとは何でしょうか?Snippetとは、Eggplant Functionalスクリプトとして、またはスクリプト内のカスタムコマンドなどのハンドラとして存在するコードのことです。Snippetは、Eggplant AIがModel内で特定のStateやActionを実行したときに、テスト対象のシステム上で何が起こるかを指定します。 Snippetには、ボタンをクリックしたりフィールドに入力したりするコードなどのインタラクティブなコードや、検証などの非インタラクティブなコードを含めることができます。Snippetは、1 行のように短くすることも、必要に応じて何行ものコードを持つこともできます。一般的に、Snippetの長さは、関連するModelのGranularityと相関があります。非常にGranularityの高い Eggplant AI Modelは、StateやActionに比較的短いSnippetを使用します。 レッスン 1 で、Eggplant Functional がフュージョン自動化エンジンであることを思い出していただけると思います。つまり、Eggplant Functionalは、ユーザー・インターフェースからデータベースやAPIコールに至るまで、様々なレベルのアプリケーションを自動化することができます。Eggplant Functionalはこれらの異なる自動化アプローチをサポートしているため、Eggplant AIはこれらのアプローチを使用したModelベースの自動化のフレームワークとして機能します。このトレーニング・コースでは、Eggplant AI を使用してアプリケーションのGUIをテストすることに焦点を当てています。
  3. Eggplant FunctionalでのSnippetの作成には主に2つの方法があります。 Autoscan機能とAutosnippets機能は、アプリケーションの画面または画面のセクションに属するSnippetのセットを高速に作成することができる方法の1つです。このようなアプリケーション画面との関連性のため、Autosnippetsは、アプリケーション・インターフェースをマップするModelに特に適しています。しかし、ビヘイビア・ベースのアプローチを使用するModelでもAutoscanを使用することができます。 Autosnippetsを使用するだけでなく、必要に応じて、または高度にカスタマイズされたコードを使用してSnippetを作成するなど、よりアドホックな方法でSnippetを構築することもできます。 Eggplant Functionalでは、どのようにSnippetを作成しても、テスト要件に合わせてカスタマイズすることができます。
  4. ここでは、このコースのレッスン2の演習で使用したモバイルバンキングアプリをマッピングしたModelの例を紹介します。もしあなたがレッスン2のエクササイズを行っていない場合は、レッスン3に進む前にもう一度戻ってエクササイズを完了させることをお勧めします。 レッスン2の練習でモバイルバンキングアプリを使ったのに、あなたのModelがここに写っているものと違っていた場合は、全く問題ありません。しかし、ほとんどの場合、アプリケーションのログインプロセスがModelのどこかで表現されています。 [Login Page]のStateには、バンキング・アプリのインターフェイス上の要素に関連するActionが含まれているので、AutoscanとAutosnippetsを使って[Login Page]のState用のSnippetを簡単に生成することができます。
  5. 一般的には、1つのアプリケーション画面または画面のセクションは、Eggplant Functional Autoscanセッションと呼ばれるものに関連しています。Autoscanセッションでは、テスト対象のアプリケーションの画面に表示される要素から画像をすばやくキャプチャし、Snippetのセットを作成することができます。 Autoscanの準備をするには、Eggplant Functional Viewerウィンドウでテスト対象のシステムを手動で操作し、目的の画面(ログイン画面)が表示されるようにします。
  6. Autoscanは、Viewerウィンドウのツールバーの[Start Session]ボタンから利用できます。AutoscanにアクセスするときにViewerウィンドウでライブモードを使用している場合、Autoscanには、ブラウザやシステムインターフェイス要素を含む、テスト対象のシステムの表示全体が含まれます。おそらく、画面の特定のセクションにAutoscanを集中して実行したい場合が多いでしょう。画面の特定のセクションをAutoscanするには、キャプチャモードに入り、スクリーンショットに示されているように、目的の領域の上にキャプチャ領域を移動します。その後、[Start Session] ボタンを使用して、キャプチャ領域のAutoscanにアクセスします。 [Open Session] をクリックする前に、Autoscanセッションに名前を付けることをお勧めします。セッション名は、Autosnippetsによって生成されたスクリプトの名前を決定します。
  7. Autoscanは、フィールドやボタンなどの画面上の各要素を個別に識別し、Autosnippetsは各要素のSnippetを生成します。つまり、AutonsnippetsはGranularityが高いということです。ModelのGranularityの低いアプローチを使用している場合は、Autosnippetsによって生成された複数のSnippetをステートやアクションにアタッチしたり、アドホックなSnippet作成を使用して1つの長いSnippetを作成したりすることができます。 Autoscanセッションでは、主に2つのことを考慮する必要があります。1つ目は、どの要素にキャプチャ画像を持たせるか、2つ目はどの要素にAutosnippetsを持たせるかです。オートメーションで重要な要素の中には、キャプチャ画像を必要とするものがありますが、それらは独自のSnippetを持っていないかもしれません。Autosnippetsには、画像検索ではなく光学的な文字認識に基づいてSnippetを作成するオプションがありますので、キャプチャ画像を持たない要素にAutosnippetsを持たせることができます。 [Slider]を使用して、要素を識別する際のAutoscanの感度を調整することができます。 Autoscanセッションから、キャプチャ画像やAutosnippetsがないはずの要素を削除するには、ハイライトされた要素の[Delete]アイコンをクリックするか、右下の[Delete unnamed images]ボタンを使用します。テスト対象のシステムのスクリーンショット上でマウスを使ってドラッグすることで、Autoscanセッションに新しい要素を追加できます。
  8. どの要素にAutosnippetを生成するかは、[Element Type]のドロップダウンリストから要素の種類を選択することができます。 Element Typeは、AutosnippetsがSnippetテンプレートを使用してどの要素のSnippetを生成するかを決定します。Eggplant Functionalには、Element Typeのデフォルトセットと、各Element Typeに対応するAutosnippetテンプレートのデフォルトセットが付属しています。しかし、Eggplant FunctionalのPreferencesでElement TypeとAutosnippetテンプレートの両方をカスタマイズすることができます。 Checkpoint Element Typeを例に考えてみましょう。Checkpoint には、2つのデフォルトのAutosnippetテンプレートがあります。このテンプレートでは、画面上に要素があるかどうかをチェックするハンドラが生成され、要素が見つかったかどうかに応じてハンドラの1つが true または false を返します。ハンドラはテスト対象のシステムとの相互作用を行わないため、Checkpoint要素は主に検証に役立ちます。 他のElement Typeは、ボタンをクリックしたり、フィールドに入力したりするなど、テスト対象のシステムと相互作用するSnippetを生成しますが、一部の要素は検証テンプレートも持っています。 各Element Typeには、独自のテンプレートがありますが、カスタマイズ可能です。 AutoscanセッションでAutosnippetsを持つべき各要素に適切なElement Typeを選択したら、[Generate]ボタンをクリックして、要素のキャプチャ画像と Autosnippets を生成します。
  9. このスクリーンショットは、Autoscanセッションから画像とSnippetを生成した後のEggplant Functional Suiteを示しています。 このSuiteには、Autoscanセッションの名前を継承したスクリプトが1つあります。スクリプトの内部には、各要素の選択されたElement Typeに属するAutosnippetテンプレートから作成された汎用ハンドラのセットがあります。各Autoscanセッションは、Snippetを生成する際に、この組織的なスキームに従います。
  10. ビデオを見て、Autoscan と Autosnippet のワークフローを実際に見てみましょう。
  11. Autosnippetsのカスタマイズは一般的です。モバイルバンキングアプリの[Accounts Page]のStateは、Snippetのカスタマイズについて議論する機会を提供します。 モバイルバンキングアプリの口座ページの主な機能は、口座への振込や口座からの支払いを行うことです。このページに1つのアカウントしか表示されていない場合、「Transfer」ボタンと「Make Payment」ボタン用のAutosnippetsを作成して、カスタマイズせずにそれらのAutosnippetsを使用することができます。しかし、「Transfer」と「Make Payment」はUI上で重複したボタンであり、ページの下の方にあるアカウントの「Transfer」と「Make Payment」ボタンを表示するにはスワイプが必要です。 Button Element TypeのデフォルトのAutosnippetテンプレートは、スワイプや重複したボタンを扱うにはシンプルすぎます。
  12. Autoscanを使用して、[Transfer]ボタンと[Make Payment]ボタンにElement Typeを割り当てると、キャプチャ画像とAutosnippetsの両方が生成されます。Autoscanに各アカウント名を含めることで、アカウント名の画像をキャプチャしてSnippetの searchRectangles を設定することができますが、アカウント名は独自のSnippetを必要としないため、Element Typeを割り当てません。 Autosnippetsを生成した後、カスタマイズすることができます。Snippetをパラメータ化し、Transfer ClickハンドラにsearchRectangleを追加して、Snippetが[Transfer]ボタンの正しいインスタンスをクリックするようにしました。カスタムSnippetの書き方については、このレッスンの「リソース」セクションのリンクを参照してください。 このコースのレッスン4では、Eggplant AIが変数を使用してパラメータ化されたEggplant Functional Snippetに値を渡す方法について説明します。
  13. 頻繁にSnippetをカスタマイズする必要がある場合は、既に生成されたSnippetを編集するのではなく、Autosnippetテンプレートをカスタマイズすることを検討してみてください。 Autosnippetsテンプレートファイルをカスタマイズするには、Eggplant Functionalの[Script Preferences]タブを開きます。
  14. Autosnippetsを使用するだけでなく、Ad-hoc Snippet(Autosnippetsのワークフローの外で作成されたSnippet)を作成することもできます。Eggplant AIは、スクリーンショットのように個別のスクリプトの形でSnippetを作成することもできますし、Autosnippetsが作成するようにスクリプト内のハンドラとして作成することもできます。 アドホックなSnippetの作成についての詳細は、このレッスンの「リソース」セクションの「スクリプトとハンドラの作成」リンクを参照してください。
  15. Snippetを作成したら、それをModelのStateやActionにアタッチすることができます。 Eggplant AIインターフェースの左側にあるSnippetタブには、Modelで利用可能なSnippetのツリーが表示されます。Snippetタブのラベルの横に緑色の点があることに注意してください。緑色のドットは、Eggplant AIエージェントが実行されており、Eggplant AIサーバーとの通信に成功していることを示しています。しかし、このスクリーンショットでは、ModelがまだSnippetを含むSuiteにリンクされていないため、Snippetが表示されていません。 Snippetタブに赤い点が表示されている場合は、Eggplant AIエージェントがまったく動作していないか、Eggplant AIサーバーがエージェントと通信できていないことを示しています。
  16. ModelにStateやActionに追加できるSnippetのリストを用意するには、ModelをEggplant機能Suiteにリンクする必要があります。 Model設定ダイアログのEggplant機能Suiteの場所フィールドを使用して、Eggplant Functional SuiteをModelにリンクする方法については、ビデオを参照してください。このシナリオでは、Snippetタブの緑色の点で示されているように、Eggplant AIエージェントはすでに実行されています。Eggplant Functional Suiteの作成とModelへのリンクについての詳細は、このレッスンの「リソース」のセクションを参照してください。
  17. Snippetタブには、ツリーのトップレベルにある機能的なスクリプトが表示されます。スクリプトのノードを展開すると、スクリプト内のハンドラが表示されます。
  18. SnippetタブにSnippetのセットが用意されたので、それらをEggplant AIのStateやActionにアタッチしてみましょう。 SnippetをStateやActionにアタッチするには、まずSnippetをアタッチするStateやActionを選択します。後者は、ErrorやClearnupなど、Model Treeにしか表示されないStateを選択するのに便利です。StateまたはActionを選択したら、Snippetタブを開き、ツリーで目的のSnippetを右クリックして、選択したSnippetに追加 を選択します。 C
  19. [State Properties]/[Action Properties]タブには、StateまたはActionにアタッチされたSnippetが表示されます。また、[Properties]タブの[New]ボタンを使用して、[ScriptPath]列にSnippet名を指定することにより、SnippetをStateまたはActionに追加することもできます。 StateやActionに複数のSnippetがリンクされている場合、Eggplant AIは、[Properties]タブの[Snippets Called by]セクションに表示されているトップダウン順にすべてのSnippetを実行します。 [Snippets Called by]セクションには、特定のSnippetを無効にするチェックボックスもあり、Model実行中にModelがSnippetを呼び出さないようにすることができます。
  20. [Snippets Called by]セクションには、Snippetの入出力を指定する欄があります。これらの入出力は、パラメータ化されたSnippetを使用したり、Eggplant Functionalからデータを取得したりするために必要不可欠なものです。レッスン4では、変数を使用して入出力を指定する方法について説明します。
  21. ModelにSnippetをアタッチする方法をビデオでご覧ください。Snippetをアタッチすると、StateやActionの左上隅にある小さなグレーのドットが緑色に変わります。このため、どのStateとActionがSnippetをアタッチしているかを簡単に判断することができます。
  22. これでレッスン3は終了です。必要に応じて、レッスン内容とリソースを確認してください。準備ができたら、レッスン4に進みます。