SUT情報と制御
これらのコマンドと関数は、Eggplant Functionalからテスト対象システム(SUT)に接続したり、接続やその他のSUT情報についての情報を収集したりするためにSenseTalkスクリプトを使用することができます。
AllConnectionInfo
Function
振る舞い: 全ての接続プロパティリストを返します。戻り値には、セッション中にConnectコマンドを使用して作成された任意の接続の接続プロパティリストも含まれます。
パラメータ: なし。
戻り値: 接続リスト内の全てのSUTの接続プロパティリストのリスト。例えば:
[{AndroidDevice:"True", Availability:"Unknown", Bonjour:"False", ColorDepth:"0", Connected:"False", DeviceSerialNumber:"b6dcc079", Name:"GalaxyS5", PortNum:"5900", Reverse:"False", ServerID:"SM-G900V (b6dcc079)", Status:"Not Connected", Type:"vnc", Visible:"False"},{Availability:"Unknown", Bonjour:"False", ColorDepth:"0", Connected:"False", Name:"Linux", PortNum:"5900", Reverse:"False", ScreenSize:[1024,768], ServerID:"192.168.120.137", Status:"Not Connected", Type:"vnc", Visible:"False"}]
例:
put the AllConnectionInfo into HostList //AllConnectionInfo関数の戻り値をHostListという名前の変数に格納します
関連:
Disconnect
コマンド
振る舞い: SUTとの接続を開く、または接続済みのSUTをアクティブなSUTにします。接続プロパティリストを渡すと、設定したプロパティが上書きされます。
パラメータ: ホスト名、IPアドレス、または接続リストからの表示名。または、接続プロパティリストのいずれか。
SUTが接続リストにない 場合、または接続リストの情報を上書きする必要がある場合は、接続プロパティリストを渡すことができます。コマンドラインまたはスクリプト開発マシンとは異なるマシンからスクリプトを実行する場合、実行は通常、接続リストにアクセスがありません。そのため、完全な接続プロパティリストを使用してConnect
コマンドを定期的に使用することを強く推奨します。
Syntax:
Connect nameOrServerID {, port {, password}} {, connectionPropertyList}
Connect connectionPropertyList
最初の構文が使用されると、_nameOrServerID_は、接続リスト内の既存の接続の名前、または作成される接続の特定の種類に適したServerIDのどちらかであるべきです。これにはオプションで_port_番号、_password_および/または追加のプロパティを供給する_connectionPropertyList_が続くことがあります。2つ目の構文は単に_connectionPropertyList_を提供します。
Eggplant Functionalは、以下に示すようないくつかの異なるタイプのSUT接続をサポートしています。
- VNCサーバー -
type:"VNC"
または指定なし(これがデフォルトのタイプです) - RDPサーバー -
type:"RDP"
- Sauce Labsのブラウザとデバイス -
type:"SauceLabs"
- Citrixサーバー -
type:"Citrix"
- スクリーンショットファイル -
type:"Screenshot"
- チュートリアルSUT - _nameOrServerID_として
"TutorialSUT"
を使用します。これはトレーニングと探索のためのダミーのSUTです。
VNCサーバーやTutorial SUT以外に接続する場合、上記のリストで示されているように、少なくともtype
プロパティを提供する_connectionPropertyList_を使用する必要があります。他の接続プロパティは、接続の種類により異なります。
Eggplant Automation Cloudデバイスへの接続: Connect
コマンドを使用してEggplant Automation Cloudにホストされているデバイスに接続する情報については、Eggplant Automation Cloudテストシステムへの接続を参照してください。
:::
VNCおよびRDP接続
VNCおよびRDP接続の接続プロパティは次のとおりです(すべてオプション、指定された場合を除く):
- Type: RDP接続の場合は"RDP"、VNC接続の場合は"VNC"(または省略)。SUTに接続するための方法。(デフォルト値: VNC。)
- ServerID: ホスト名、IPアドレス、またはConnection List Display Name。これはVNC接続の唯一の必須プロパティです。
- PortNum: SUT上のサーバーが使用するポート番号。(デフォルト値: VNCの場合は5900; RDPの場合は3389。)
- Username: RDP経由で接続する際のWindowsユーザー名。(デフォルト値: なし。)
- Password: VNC接続を行う場合はVNCサーバーのパスワード、RDP接続を行う場合はWindowsユーザーのパスワード。(デフォルト値: なし。ただし、RDP接続ではパスワードが必要です。)
- sshHost: SSH接続をホストしているコンピューターのホスト名またはIPアドレス。(デフォルト値: なし。)
- sshUser: SSHホスト上のユーザーアカウント(デフォルト値: なし。)
- sshPassword: SSHサーバー上のユーザーアカウントのパスワード。(デフォルト値: なし。)
- Visible: Viewerウィンドウが接続時に自動的に開くかどうかを指定します。(有効な値: YesまたはNo。)
- ColorDepth: Viewerウィンドウ内のSUTの色深度: 8, 16, 32。(デフォルト値: SUTのネイティブ色深度。)
- Height: RDP接続タイプのみに適用し、ピクセル単位でViewerウィンドウの高さを指定します。(デフォルト値: 768。)
- Width: RDP接続タイプのみに適用し、ピクセル単位でViewerウィンドウの幅を指定します。(デフォルト値: 1024。)
- scaleRemoteScreen: YESに設定する と、モバイルVNCサーバーを各次元で50パーセントスケーリングします。このオプションは、大画面または高解像度のモバイルデバイスを使用する場合に優れたパフォーマンスを提供します。
- blendScaledScreen: YESに設定すると、
scaleRemoteScreen
を使用している場合にピクセル色をブレンドします。このオプションは、古いスクリプトや画像との後方互換性のためだけに使用するべきです。
- blendScaledScreen: YESに設定すると、
- monitorCount: RDP接続のモニター数を指定します。値は1から5の間である必要があります。
Sauce Labs接続
Sauce Labs接続を行う場合、ブラウザに接続するためのBrowserName
プロパティか、デバイスに接続するためのDeviceName
プロパティのいずれかを含める必要があります。
Sauce Labs接続の両方のタイプの接続プロパティは以下のとおりです:
- Type: "SauceLabs"(必須)
- Name: この接続に割り当てる名前。(オプション - 指定されない場合、"Sauce Labs 1"のような名前が割り当てられます)
- User: 使用するSauce Labsアカウントのユーザー名。(必須)
- APIKey: アカウントのSauce Labs APIキー。(必須)
- DataCenter: 接続するSauce Labsデータセンター。(必須)
- Visible: Viewerウィンドウが接続時に自動的に開くかどうかを指定します。(オプション - 有効な値: YesまたはNo)
ブラウザ接続の場合:
- BrowserName: ブラウザの名前、例:"Chrome"、"Firefox"など。(必須)
- PlatformName: オペレーティングシステムのプラットフォームの名前、例:"Windows 10"。(必須)
- URL: ブラウザで接続するサイトのURL。(必須)
- BrowserVersion: 要求される具体的なブラウザのバージョン。(オプション)
- ScreenResolution: ブラウザのスクリーンサイズ。形式は_width_ X height、例:"1400x1050"。(オプション)
デバイス接続の場合:
- DeviceName: デバイス識別子、例:"Iphone 12"など。(必須)
- PlatformName: オペレーティングシステムのプラットフォームの名前、例:"iOS"、"Android"など。(必須)
- App: デバイスで実行するアプリのURL。(必須)
Sauce Labs Tunnel Proxiesのオプション:
Sauce labs tunnelsは、Sauce Labsのブラウザとデバイ スの両方に接続するために使用できます。
Sauce Labs Tunnel Proxy機能を使用するには、まずSauce Connect ProxyをEggplant Functionalと同じマシンにインストールし、実行しておく必要があります。詳細は Connecting Using Sauce Connect Proxyをご覧ください。
- Tunnel Name: Sauce Labsに接続する際に使用するアクティブなSauce Connectトンネルの名前。(オプション)
- Tunnel Owner: アクティブなSauce Connectトンネルを確立したSauce Labsユーザーアカウントの名前。(オプション)
Citrix接続
Citrix接続を行う際には、以下のプロパティが使用されます:
- Type: "Citrix" (必須)
- Name: この接続に割り当てる名前。(オプション – 与えられない場合、"Citrix 1"のような名前が割り当てられます)
- User: Citrix接続のユーザー名。(必須)
- Password: Citrix接続のユーザーパスワード。(必須)
- StorefrontURL: CitrixストアフロントのURL。(必須)
- Application: Citrix StorefrontアプリケーションにリストされているCitrixアプリケーションのタイトル。(必須)
- Visible: 接続時にビューアウィンドウが自動的に開くかどうかを指定します。(オプション – 有効な値: YesまたはNo)
- ScreenResolution: Citrix SUTの解像度。(オプション - デフ ォルトは1600x900)
- ScreenshotInterval: Citrix SUTのスクリーンキャプチャを行う間隔(ミリ秒)。(オプション - デフォルトは400)
----------sensetalk
Eggplant Functionalを実行しているシステムに直接接続されているモバイルデバイスに接続する場合、必要なプロパティは接続されるデバイスのOSに依存します。現在、Eggplant FunctionalはiOSおよびAndroidデバイスに対してモバイルデバイス接続をサポートしています。
モバイルデバイスをEggplant Functionalに初めて接続する場合は、モバイルデバイスのテストに関連する一般的な概念については、モバイルデバイスへの接続を参照することをお勧めします。また、テストするデバイスの種類によっては、Androidモバイルデバイスでの作業またはiOSモバイルデバイスでの作業を参照し、詳細を確認する必要があります。
----------sensetalk
- Type: "Screenshot" (必須)
AllConnectionInfo
関数- Eggplant Automation Cloudデバイスへの接続:
Connect
コマンドを使用してEggplant Automation Cloudにホストされているデバイスに接続する情報については、Eggplant Automation Cloudテストシステムへの接続を参照してください。
:::
システムに1つのデバイスだけが接続されている場合、"connected" のデバイスIDを指定することで、Eggplant Functionalは自動的にそのデバイスに接続します。複数のデバイスが接続されている場合は、このフィールドは必須です。デバイスIDの取得に関しては、AndroidモバイルデバイスIDの取得およびAndroidエミュレータへの接続を参照してください。
デバイス接続の場合:
- Type: "Screenshot"(必須)
- Name: この接続に割り当てる名前(オプション - 指定しない場合、名前が割り当てられます)
- DeviceUDID: 接続するデバイスのユニークなデバイスID(必須 - 下記の注意事項を参照)
- ProvisioningProfilePath: プロビジョニングプロファイルが含まれるファイルの完全修飾名(必須)
- DeveloperCertificatePath: 開発者証明書が含まれるファイルの完全修飾名(必須)
- DeveloperCertificatePath: 開発者証明書のパスワード(必須)
- DeveloperDiskPath: 選択したハードウェアプラットフォームのすべての開発者ディスクを含むトップレベルディレクトリへのパス。詳細は「開発者ディスクを取得する」を参照してください(必須)
:::注意点
もしシステムに接続されているデバイスが1台だけの場合、DeviceUDIDを「connected」と指定するとEggplant Functionalは自動的にそのデバイスに接続します。もし複数のデバイスが接続されている場合、このパラメーターは必須です。Device UDIDの使用方法の詳細については「iOSモバイルの一意のデバイスID(UDID)の取得」を参照してください。
:::
スクリーンショット接続
スクリーンショット接続を開くために必要なのは、ローカルコンピュータ上のスクリーンショットイメージへのパスだけです。静的なイメージとのインタラクションは可能ではありませんが、スクリーンショット接続は画像をキャプチャしたり、画像とテキストの検索プロパティを試すために非常に便利です。
RefreshScreen
コマンド- Name: スクリーンショットイメージファイルへのフルパス。(必須, "Name"プロパティとして、または最初の(ラベルなし)パラメータとして)
すでにSUTに接続している場合、ConnectionInfo
functionで関連する接続プロパティリストを取得できます。
Connect
コマンド
例 (名前で):
Connect "Windows 7 VM" // "Windows 7 VM"という名前の保存されたSUTに接続するか、アクティブな接続を切り替えます。
例 (VNC):
Connect {serverID: "10.211.55.4", portNum: "5900", Visible: "Yes"} // 指定されたIPとポート番号を使用してSUTに接続します。スクリプトをGUIで実行すると、VisibleプロパティがSUTのビューアウィンドウを前面に出す原因となります。
例(名前で追加プロパティを指定した場合):
Connect {ServerID: "Samsung_S5", scaleRemoteScreen: "Yes"} // scaleRemoteScreenは、AndroidおよびiOS SUT専用の追加引数です。
例 (handler):
// 「ConnectRDP」コマンドをパラメータと共に定義し、任意のRDP SUTに1920x1080の画面解像度で接続できるようにします。
// 例の呼び出し:ConnectRDP "10.1.10.130", "password123", "Administrator"。
to handle ConnectRDP SUTID, SUTPassword, SUTUsername
Connect {serverID: SUTID, portNum: 3389, password: SUTPassword, username: SUTUsername, Type:"RDP", Width: 1920, Height: 1080}
end ConnectRDP
例 (Sauce Labs device):
connect {type:"SauceLabs",
deviceName:"Samsung Galaxy S10",
platformName:"Android",
app: "",
userName: "Graham52",
apiKey: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
dataCenter: "us-west-1",
}
例 (Sauce Labs browser):
set SauceCredentials to {
userName:"RootieTootie",
apiKey: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
dataCenter: "us-west-1",
}
}
connect {type:"SauceLabs",
browserName:"Chrome",
platformName:"Windows 10",
url: "https://www.google.com",
例 (Citrix):
connect {type:"Citrix",
storefrontURL:"https://citrix.yourorgscitrixdomain.com/Citrix/Citrix",
userName:"EggplantUser",
password:"NuggetsNation",
application:"Windows Server 2019",
screenResolution:"1600x900",
screenshotInterval:"400"
}
例(モバイルデバイス - Androidの自動デバイス検出):
connect {type:"Mobile Device",
name:"My Android Device",
deviceId:"Connected",
}
例(モバイルデバイス - エミュレーターを使用したAndroid):
connect {type:"Mobile Device",
name:"My Android Device",
deviceId:"emulator-5554",
}
例(モバイルデバイス - iOSの自動デバイス検出):
connect {type:"Mobile Device",
name:"My iOS Device",
deviceUDID:"Connected",
provisioningProfilePath: "/Users/janedoe/Documents/my-certs/my-provisioning-profile.mobileprovision",
developerCertificatePath: "/Users/janedoe/Documents/my-certs/my-developer-cert.p12",
developerCertificatePassword: "xxxxxxxxxx",
developerDiskPath: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport",
}
例(モバイルデバイス - 明示的なUDIDを指定したiOS):
connect {type:"Mobile Device",
name:"My iOS Device",
deviceUDID:"00005109-000A4B5C2D47771E",
provisioningProfilePath: "/Users/janedoe/Documents/my-certs/my-provisioning-profile.mobileprovision",
developerCertificatePath: "/Users/janedoe/Documents/my-certs/my-developer-cert.p12",
developerCertificatePassword: "xxxxxxxxxx",
developerDiskPath: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport",
}
例 (screenshot):
connect "/Users/bob/Documents/EggplantSuites/Test.suite/Results/bug2029/20130903_134649.212/Screen_Error.tiff", type:"screenshot" // スイートに保存されたスクリーンショットに接続します
例 (screenshot):
connect type:"screenshot", name:"/Users/doug/Documents/EggplantSuites/Test.suite/Results/bug2029/20130903_134649.212/Screen_Error.tiff"
関連:
ConnectionInfo
Function
**動作:**指定されたSUTの接続プロパティリストを返します。
返されるプロパティリストには、以下のプロパティが任意の数含まれることがあります:
- AndroidDevice: (ブール値)。USB経由でAndroidデバイスが接続されている場合に
True
に設定します。 - App: (文字列)。Sauce Labsデバイス接続のデバイス上で実行するアプリのURL。
- Availability: (ブール値)。SUTの最後の利用可能状態。
- Bonjour: (ブール値)。SUTがBonjourまたはzeroconf経由で見つかったかどうか。
- BrowserName: (文字列)。Sauce Labsブラウザ接続のブラウザの名前。
- BrowserVersion: (文字列)。Sauce Labsブラウザ接続のブラウザバージョン。
- ColorDepth: (整数: 8,16,または32)。ビューアウィンドウでSUTが表示される色深度。
- Connected: (ブール値)。Eggplant Functionalが現在SUTに接続しているかどうか。
ConnectionInfo
関数- DeviceManufacturer: (文字列)。接続しているモバイルデバイスの製造元。(このプロパティは、VNCサーバーが情報を送信した場合にのみ含まれます。)
- DeviceModel: (文字列)。接続しているモバイルデバイスのモデル名。(このプロパティは、VNCサーバーが情報を送信した場合にのみ含まれます。)
- DeviceName: (文字列)。Sauce Labsデバイス接続用のデバイス識別子、例えば"Iphone 12"。
- DeviceSerialNumber: (文字列)。AndroidデバイスがUSB経由で接続されたときに、デバイスのシリアル番号に設定されます。
- DeviceSupportsPointerEvents: (ブール値)。モバイルデバイスがMoveToなどのポインターイベントをサポートしているかどうか。
- DeviceVersion: (文字列)。接続しているモバイルデバイスのバージョン。(このプロパティは、VNCサーバーが情報を送信した場合にのみ含まれます。)
- Name: (文字列)。指定されている場合はSUTの表示名、またはSUTマシンのIPアドレス。
- Pass_code: (文字列)。VNCサーバーのパスワード、暗号化されています。
- PlatformName: (文字列)。Sauce Labs接続のためのオペレーティングシステムプラットフォームの名前。
- PortNum: (整数)。SUTのVNCサーバーが使用するポート番号。
- Reverse: (ブール値)。VNC接続がリバース接続(すなわち、SUTによって開始された)であるかどうか。
- ScreenResolution: (文字列)。形式_width_ X _height_のブラウザ画面サイズ、Sauce Labsブラウザ接続の場合は"1400x1050"など。
- ScreenSize: (サイズ)。SUT画面の幅と高さ。
- ServerID: (文字列)。SUTのホスト名、IPアドレス、または表示名。
- sshHost: (文字列)。SSH接続をホストしているコンピュータのホスト名またはIP。
- sshPass_code: (文字列)。SSHサーバー上のユーザーアカウントのパスワード、暗号化されています。
- sshUser: (文字列)。SSHホスト上のユーザーアカウント。
- Status: (文字列: ConnectedまたはNot Connected)。Eggplant FunctionalがSUTに接続されているかどうか。
- Type: (文字列)。接続の方法、VNCまたはRDP。
- URL: (文字列)。Sauce Labsブラウザ接続のためのブラウザに表示するサイトのURL。
- Visible: (ブール値)。ビューワウィンドウが接続時に自動的に開くかどうか;はいまたはいいえ。
パラメータ: SUTのホスト名、IPアドレス、または表示名;上記の少なくとも1つを含む接続プロパティリスト;またはパラメータなし。
戻り値: 指定された接続の接続プロパティリスト。パラメータがない場合、ConnectionInfo
はアクティブな接続の接続プロパティリストを返します。例えば:
{Availability:"Active", Bonjour:"False", ColorDepth:"32", Connected:"True", Name:"Windows", Pass_code:"D>12W:QoP79O2(", PortNum:"5900", Reverse:"False", ScreenSize:[1024,768], ServerID:"192.168.120.136", Status:"Connected", Type:"vnc", Visible:"True"}
例:
Log the ColorDepth of the ConnectionInfo // アクティブな接続の接続プロパティリストからColorDepthプロパティ値をログに記録する