Silk Performer は、ブラウザ駆動型スクリプトの記録に Internet Explorer を使用します。スクリプトの再生には、Internet Explorer、Firefox、Chrome を使用できます。
これらのブラウザは基本的にほとんど同じですが、状況に応じてまったく異なる動作をすることがあります。このような場合、同じスクリプトをそれぞれのブラウザで再生すると、結果として動作が異なることにもなります。
以下に、動作が異なる可能性のある、または問題が発生する可能性のある事象について説明します。ここに述べる問題の多くは、特殊なケースで、ほとんど発生することはありません。また、制限事項は、特定のユースケース、テスト対象アプリケーション、および使用しているフレームワークに強く依存するものです。よって、すべての潜在する制限事項を詳細に説明することはできません。特定の制限事項に遭遇し、詳細な情報が必要な場合には、カスタマーケアにお問い合わせください。
スクリプトの再生時、マウスのクリックはブラウザによって処理が異なります。言い換えると、テスト対象アプリケーションは、使用するブラウザに応じて異なるクリック イベントを受信します。たとえば、ダブルクリックを再生すると、Internet Explorer と Firefox ではクリック イベントとダブルクリック イベントが発生します。 これがデフォルトの動作です。しかし、Chrome でダブルクリックを再生すると、ダブルクリック イベントだけが発生します。
別の例を示します。Chrome でスクリプトの再生時、クリックした要素の中央が表示されていないと、右クリック イベントが失敗します。しかし、Internet Explorer と Firefox では、クリックした要素の中央が重なって表示されていない場合でも、右クリック イベントは問題なく機能します。
ブラウザ内でのキー ストロークもブラウザによって結果が異なります。たとえば、Internet Explorer のテキスト フィールドにカーソルがあるときに Esc キーを押すと、それまで入力した内容が消去されます。他のブラウザで Esc キーを押しても何も変わりません。別の例を示します。 Firefox と Chrome では Return キーとテンキーの Enter キーに違いはありませんが、Internet Explorer では異なります。
ブラウザによっては、他のブラウザでは使用されていない要素の属性を使用する場合があります。たとえば、Internet Explorer では、spellcheck をすべての要素に存在する汎用属性として使用しますが、Chrome と Firefox では明示的に使用されたときだけこの属性を使用します。スクリプトの記録時に Internet Explorer が使用されるため、Chrome や Firefox でスクリプトを再生するとエラーになります。
テスト対象アプリケーションがすぐに閉じられるポップアップ ウィンドウを開くと、結果が安定しないことがあります。この問題を起こす可能性のある実際の例を示します。ポップアップ ウィンドウを開くリンクをクリックするとします。そして、このウィンドウは他のウィンドウを開き、すぐに閉じます。このアプリケーションの再生に Firefox や Chrome を使うと、ウィンドウが見つからない場合があります。この問題は、BrowserAPI.bdh で定義されたカスタム関数 BrowserWaitForNewWindowWithLocator を使って回避できます。
無効な URL に移動すると、Internet Explorer ではエラーが発生しますが、Chrome と Firefox では発生しません。このことは、URL を監視するときに問題になります。URL が到達不能であっても、監視でエラーは発生しません。このような場合は、スクリプトに検証関数を追加すると有用です。
テスト対象アプリケーションの多様な使用技術やアーキテクチャの違いが原因で、一部の測定値が測定されない可能性があります。たとえば、テスト対象アプリケーションでリダイレクトや iframe が使用されると、一部のトラフィックが対象にならない場合があります。
スクリプトの再生に Firefox や Chrome を使った場合、JavaScript アラートとプロンプトだけを処理できます。ネイティブ ダイアログ(ファイルの保存やファイルを開くためのダイアログなど)はサポートされません。
Silk Performer 18.5 以前のバージョンで作成されたスクリプトは、再生互換モード が異なります。互換モードは、プロファイル設定か BDL 関数 BrowserReplayCompatibility を使って設定できます。
以前のバージョンでは、サポートするブラウザは Internet Explorer のみであったため、専用に調整したロケータが使用されていました。つまり、以前のスクリプトで使用されているロケータは、再生時に問題を起こす可能性があります。