問題タブ [gui-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
timeout - QTP リカバリ シナリオは、タイムアウトが 0 の連続する FAILED ステップを「スキップ」するために使用されます -- 元のタイムアウト値を復元するにはどうすればよいですか?
QTPs リカバリ シナリオ マネージャを使用して、再生同期タイムアウトを 0 に設定するとします。ハンドラは、「次のステートメントで続行」を返します。
次の再生ステートメントが、失敗する前に次の存在しない/一致しないステップを待つ時間を無駄にしないようにするために、これを行います。
10 個のコントロールが欠落している場合、それらの (連続した) 再生ステップが失敗する前に 10 のタイムアウト待機を生成するとします。再生タイムアウトが 30 秒の場合、10x30 秒 = 5 分の実行時間が失われますが、1 回 30 秒待機するだけで十分です (アプリはもう変更されないため、既に完全なタイムアウト期間を待っていました)。
100 個のテスト ケース (= アクションの反復) がある場合、これが 100 回発生する可能性があり、テスト実行時間ウィンドウの 500 分が無駄になります。
そのため、最初の失敗した再生ステップの後/時にタイムアウトを 0 に設定する回復シナリオ関数のアイデアを思いつきました。これにより、正しく失敗したステップをスキップしながら速度が加速されますが、次の一致する GUI コンテキスト (PASSED ステップを作成する) を識別する精度/信頼性が損なわれることはありません。
もちろん、次に渡された再生ステップで、元のタイムアウト値を復元したいと思います。どうすればそれができますか?これは私の質問です。
PASSED ステップに対して呼び出される回復シナリオ関数を定義することはできません。
現在、Reporter.ReportEvent にメソッド関数を設定し、そこにある PASSED ログ エントリを「スニッフィング」することを考えています。そのメソッド関数を、タイムアウトを 0 に設定するシナリオ リカバリ関数にインストールします。次に、「スニファー」関数が、次の再生ステップのいずれかで PASSED ステータスの ReportEvent 呼び出しを感知すると、すべてをリセットします (つまり、元のタイムアウト、およびメソッド機能をアンインストールします)。(ただし、.Click メソッドと .Set メソッドは ReportEvent を呼び出して結果のステータスを書き込むことはないと 99% 確信しています。したがって、このオプションはおそらく機能しない可能性があります。)
より良いアイデア?これは本当に私を悩ませます。
automated-tests - QTPリカバリシナリオによってトリガーされる関数は、独自のライブラリに存在する必要がありますか?
関数ライブラリ(テストのリソース設定で参照されている)の1つに関数を挿入しました。次のようになります。
(明らかに、私は探索段階にあります;)
また、「エラー時にNWRecoverOnRunStepを呼び出す'オブジェクトが見つかりません'」というリカバリシナリオを作成し、それをリカバリシナリオファイルとして保存して、そのファイルをテストに関連付けました。
テストを実行すると、QTPは「ライブラリファイルのエラー」、blabla、および詳細の下に「エラー」と表示します。
(私はすべてのライブラリで明示的なオプションを使用しています。)(そして:もちろん、「Dim CaptchaCheckActive」はライブラリで定義された最初のグローバル変数であり、ライブラリmylib.qflにはこの宣言とリカバリハンドラの両方が含まれています。)
Q:これは、ライブラリがテストに2回リンクされているためです。1回は「従来の」関数ライブラリであり、もう1回は回復シナリオ関数を含むためです。
代替Q:回復シナリオ処理関数は、独自の関数ライブラリに存在する必要がある、つまり、他のユーザー定義関数とは別に存在する必要があるというのは本当ですか?
私はそれがdoxに述べられているのを見ませんでした。
com - Windows アプリケーションでコントロール名を取得する
Stackoverflow での検索ではこれを見つけられませんでした - Windows アプリでコントロール名または ID を取得し、AutoIt などのツールで自動テストの参照に使用できるようなツールを以前に見たことがあることを知っています。誰でも提案できますか?
OLE/COM Object Viewer を試してみましたが、コントロール リストはありますが、インタラクティブな方法はありません。コントロールをクリックしてそれに関するすべての情報を取得できる Firefox の Web 開発者ツールキットのように、私は Windows テスト用の同様のアプリを探しています。
testing - QTP: IE の PDF ページが (他のすべてのページと同様に) Page オブジェクトではないのはなぜですか?
QTP 10 で IE Web ページを見ると、Object Spy は他の要素を含む Page オブジェクトを含む Browser オブジェクトを報告します。わかった。
まったく同じブラウザーで PDF を表示すると、そのページは Browser オブジェクトに含まれる WinObject オブジェクトとして認識されます。
Page オブジェクトも何もありません。
これはスパイに限ったことではありません。QTP スクリプトから PDF を含むページをアドレス指定しようとすると、失敗します。WinObject オブジェクトをアドレス指定する必要があります。
なんで?
それは (もちろん) 他のすべてのページと同じように、ActiveX コントロールだけを含むページであるかのように表示されます。
QTP の以前のバージョンでは、一般的な WinObject オブジェクトではなく、実際にそれが見つかったと思います。
インストールされている Adobe Reader のバージョンは 9.2.0 です。IE は 7.0.5730.13 です。
selenium - セレンで低レベルのピクセル検査を行うことは可能ですか?
Seleniumを使用してブラウザでレンダリングされたページの特定のピクセルの値を検査することは可能ですか?レンダリングされたページのバッファを画像として取得できますか?
また、マウスのスクロールダウンコマンドをブラウザに送信することはできますか?
乾杯
swing - FEST JUnit-スイングテストnoobQ:メインクラスをテストする方法は?
ここでチュートリアルを読んだにもかかわらず、FESTを自分のアプリケーションで機能させる方法を理解できないようです。
メインメソッドのない大きなクラスにSwingアプリケーションがあり、SwingWorkerクラスがいくつかあります。mainメソッドを使用して実行しているかのようにアプリケーションをテストしたいと思います。チュートリアルでは、単一のコンポーネントをテストする方法についてのみ説明しているようです。
mainメソッドを含む私のApplicationWindow.classのミニチュアバージョン:
そして、私のテストクラスはエラーをスローします。
}
このテストの実行時にスローされるエラー:
ランナーが私のコンポーネントを見つけられないようで、これは私がこの種のものをテストする方法を誤解していると私に信じさせます。私を正しい方向に向ける助けがあれば大歓迎です。
java - 自動化された GUI テスト
Netbeans IDE 6.9 を使用して Java デスクトップ アプリケーション (SWING) を作成しています。自動化された GUI テストを実行したいと考えています。テストについて私が知っているのは、私の GUI アプリケーションには適用されない JUnit テストだけです。GUI アプリケーションのテストに使用できる特定のテスト フレームワークはありますか? 良いものはありますか? 使いやすいものはどれですか (テストを行う必要がありますが、そのための時間があまりありませんが、それを無視したくありません)。私のアプリケーションは基本的に 1 つのフレームで、3 つから 4 つのタブ (大きなタブではありません) があります。テストは複雑であってはなりません。そのため、アプリケーションを迅速かつ強力な方法でテストしてバグを見つけることができる単純なフレームワークはありますか?
ありがとう
perl - Win32::GuiTest を使用してグリッド表示コントロールからデータを取得する (AfxWnd42s)
私は現在、GUI アプリケーションの 1 つをテストするためにいくつかの perl スクリプトを作成しています。私は perl の Win32::GuiTest を基盤として使用していますが、ほとんどの部分で非常に機能的です。ただし、グリッドコントロールからデータを取得しようとして立ち往生しています(これはブラックボックステストであると想定されているため、ウィジェットの実際の名前はわかりません)。WinSpy++ を使用すると、クラスが「AfxWnd42s」であることがわかります。次のコードでウィンドウ ハンドルを取得できます。
グリッド コントロールにデータがあっても、text にも wintext にも値は含まれません。GetWindowLong に対してさまざまなオプションを試しましたが、グリッドの内容について何も返されないようです。また、スキャンしているウィンドウには子がありません。私は立ち往生しています。
残念ながら、アプリケーションをビルドするためのコードや開発環境にアクセスできません。WinSpy++ がウィンドウ コンポーネントについて教えてくれることしか理解できません。
testing - SWTBot を使用した SWT GUI のテスト
SWTBotを使用して単純な SWT GUI アプリケーションをテストしたいと考えています。残念ながら、始め方がわかりません。Eclipse プラグインのテストについて説明したチュートリアルがいくつかありますが、私の問題に関するものは見つかりませんでした。それが可能かどうかさえわかりません。
testing - BlackBerry 用の UI テスト ツール
BlackBerry プラットフォームで動作する UI テスト ツールはありますか? この件に関して私が知っていることは次のとおりです。
- J2MEUnit (移植済み)、B-Unit、RIMUnit などの単体テスト機能を提供するツールがいくつかあります。
- カスタム UI イベントを挿入できる EventInjector API があります。
- BlackBerry Simulator には、FledgeController アプリケーションを介してスクリプト化されたコマンドを使用する機能があります。これにより、いくつかのカテゴリのイベントをシミュレーターに発行する機能が提供されます。ネットワーク カバレッジ、GPS 調整、周辺機器プラグ、トラックボールのロール/クリックなどの特定の入力イベントなどです。
それでも、BlackBerry アプリケーションの UI テストを自動化する機会を提供する有効なソリューションは見つかりませんでした。私たちが取り組んでいるアプリケーションには多くのブランドがあり、煙/健全性テストでさえ多くの手作業が必要です.