以下に、記録後にスクリプトが正しく再生されない一般的な理由を示します。 このような場合には、テスト スクリプトをカスタマイズする必要があります。
- ステートフルなスクリプト:記録されたスクリプトは、テストするアプリケーションが再生時とスクリプトの記録時で同じ状態である場合にのみ動作します。 たとえば、ユーザー ログインを含むスクリプトは、アプリケーションがログアウト状態である場合にのみ正しく実行できます。 この問題を解決するには、ロジックをスクリプトに手動で追加してアプリケーションの状態を設定するか、記録したスクリプトによってアプリケーションの状態が変更されないことを最初に確認します
(たとえば、スクリプトの記録中にユーザーのログアウトを含めることができます)。
- 一時的に生成される DOM 属性: 一部の AJAX フレームワークでは、ページがロードされるたびに変更する属性 (ext の x-auto の値など) が生成されます。 ロケータがこのような属性に依存していると、スクリプトの再生に失敗します。 無視する属性リストに属性を追加して、属性が今後記録されないようにする必要があります。
- マウス移動の欠落:特定の要素 (たとえば、ボタンまたはメニュー項目など) の上にマウスを移動した場合のみ表示される項目がある Web サイトをテストする場合は、スクリプトの再生中にエラーが発生します。 要素の上にマウスを移動する動作は記録されないため、Silk Performer は項目を検出できません。 このようなケースの例として、JavaScript で作成されたメニューがあります。 ただし、Silk Performer では、スクリプトの再生中にこの問題を修正することができます。 エラーが発生した場合は、 Browser Application の 問題の解決 ボタンをクリックし、リストから マウスの移動の挿入 を選択してマウスを UI 要素の上に移動して、キーボードの Pause/Break を押し、 挿入 をクリックして スクリプトの再実行 をクリックします。 これでスクリプトがエラーなしで実行されるようになります。
- 同期タイムアウトに遭遇する呼び出し:AJAX 組み込み同期では、ブラウザがアイドル状態になるまで待機してから API 呼び出しが返されます。 これは、AJAX ベースのアプリケーションで信頼できるテストを行ううえで重要な要因となります。 ただし、アイドル状態がない場合もあります
(ページでポーリングを使用したり、サーバープッシュ イベント用に接続を開いたままにする場合など)。 このような場合には、タイムアウトが発生するまで同期が待機します。 この問題は、同期モードの設定を一時的に HTML に戻すことによって解決できます。