HP UFT 12 で一連のテスト セット自動化スイートを作成しています。問題は、UFT がハングしたり、エラー メッセージをスローしたり、ユーザーの応答を待機したりするのを防ぐために、ブラウザーがいつハングしたかを知る必要があることです。問題は、テストが実行されると、朝まで誰も応答できないことです。エラーをログに記録し、可能であれば次のテストの反復を続行したいと考えています。問題は、ブラウザがハングしたかどうかを検出する方法がないように見えることです。
例: このテスト スクリプトがあります。オブジェクトをチェックし、ブラウザー ウィンドウで何らかの作業を行います。問題は、ブラウザにアイテムが存在しない場合、完全な失敗ではなく、そのアイテムに対するアクションを実行できないことです。したがって、単にオブジェクトが存在するかどうかを確認するだけでは答えにはなりません。オブジェクトが存在するかどうかを確認するだけでは、オブジェクトが存在する可能性があるが、非表示または画面外に移動されている可能性があるとは限りません。(QTP/UFTでコードを書いている人なら誰でも知っているでしょう)
このテストを実行していると想像してください。そして、テストの実行中に、動作中のブラウザーを制御し、www.crashie8.com という URL を入力すると、ハングをシミュレートしてブラウザーが即座にクラッシュします。今こそ、物事が面白くなるときです。
QTP/UFT はこれに対処できるはずです。コードを変更しないままにしておくと、UFT は最終的にエラー メッセージをスローしますが、これは上記のように役に立ちません。
すべての関数/テスト スクリプトの先頭に「On Error Resume Next」という行を追加できますが、これによりすぐに UFT がハングし、その後すべてがハングして、デスクトップに大量のトラフィックが蓄積されます。
「On Error ExitAction」、「On Error ExitTest」、「On Error ExitActionIteration」、または「On Error ExitGlobalIteration」などを実行すると、すべてコンパイル時エラー「無効な構文」が発生します
チェックポイントや復旧シナリオで知らなかった、または理解していなかった機能が不足している可能性がありますか?
編集: 解決策: [スクリプト設定] -> [実行] に移動し、オプションを設定します: 「実行セッション中にエラーが発生した場合: 実行を停止する」。実行結果には、ブラウザの識別に失敗したことを示すエラーが表示されます。
完全には機能しません。オプション "Stop Run" は実際に実行を停止しますが、オブジェクトが誤って識別された場合でも実行を停止しますが、このような単純なエラーが発生した場合、スクリプトは続行できるはずです。そのため、オプションを「次のステップに進む」に設定すると、小さなエラーで続行するという問題は解決しますが、ブラウザがハングしたときに UFT/QTP はハングします。また、「次のアクションの反復を続行する」オプションにも同じ問題があります。そのため、妥協点はないようであり、この問題を解決できるコードもないようです。
今のところ唯一の可能な解決策は「Stop Run」オプションだと思いますが、それが完全に終了し、続行する方法がまったくないことは非常に面倒であり、他のすべての続行オプションも同様に失敗します、コーディング ソリューションはありません。On Error ExitAction は、実際にはエラーであってはならない構文エラーのおかげで保存さえさせないから?! 誰かが開発した他のオプションはありますか?
編集:「Stop Run」も毎回機能しないと思います。もっと良い解決策があるはずです!誰か?
UFT/QTP クラッシュの原因として考えられるのは IE プラグインであることがわかりました。ただし、IE プラグインを無効にすることはできません。これがないと UFT/QTP は IE に対してテストできないためです。だからまたもや私たちはcatch22にいます!真剣に、HP の誰もこのことについて考えていませんか?!