2016-03-18 8 views
2

WEBブラウザ(ネットワーク)からGET/POST要求を読み込み、ステータス、ドメイン、サイズ、IP、最も重要なタイムラインなどの情報を取得する方法を見つける必要があります。JAVA上のブラウザからGET/POSTリクエストを読む

主な目的は、WEBページ上の各アクションとその実行時間後のリクエスト数を測定することです。また、WEBページで何らかのアクションを実行する前に、リクエスト(AJAX/JavaScript)が実行されているかどうかを知るのに役立ちます。

解決策を教えてください。

+1

ここで100%明確であるかどうか分からないので、ちょっと質問してみましょう。あなたが使っているHttpServletRequestを見ましたか?バックエンドでJavaを使用していますか?)あるいは、ここでJavaとJavaScriptを混同していますか? – Christian

+0

私はJava上でSeleniumフレームワークを使用してテストケースを作成しています。したがって、HttpServletRequestを使用していません。私はWebアプリケーションのBlackBoxテストを行っているので、ブラウザからいくつかのアクション(クリック、選択など)を行った後、GETまたはPOSTリクエストをサーバーに送信して応答時間を測定する必要があります。 –

+0

[browsermob](https://github.com/lightbody/browsermob-proxy)を見ましたか? –

答えて

0

テストするWebサービスのために有用とAPIですインタラクティブなユーザイベントからの応答をキャプチャします(つまり、実際のブラウザでウェブサイトをシミュレートし、動的に作成されたHTTPコールではなく)。これを自動化する必要がある場合は、プロキシサーバが必要です。

Browsermobのようなものは、トラフィックがproxy for all Seleniumと設定できます。すべてのリクエストとレスポンスのコンテンツ全体をキャプチャし、API(クロスブラウザー)HAR fileを生成して、それを永続化、視覚化、またはクエリすることができます。

明らかに、これを自動化し、Seleniumテストの実行をスケジュールし、自分のJavaコードで独自のカスタムメトリックを作成することもできます。 HARをクエリに使用するJSONに精通したデータベース(Elasticsearchなど)とビジュアライゼーションにパイプするか、オフラインでのクエリと差分のためにHARを保存するだけです。

testsからいくつかのサンプルコード:

[...] 
proxy.newHar("Test"); 

HttpGet get = new HttpGet(getLocalServerHostnameAndPort() + "/a.txt?foo=bar&a=1%262"); 
client.execute(get); 

Har har = proxy.getHar(); 
HarLog log = har.getLog(); 

List<HarEntry> entries = log.getEntries(); 

HarEntry entry = entries.get(0); 
HarRequest req = entry.getRequest(); 
[...] 

別の方法としては、http://www.softwareishard.com/har/viewer/に文字列形式と貼り付けでHARを取得して出力を視覚化することができます。これは、[ネットワーク]タブとよく似ていますが、エクスポート、スクリーンショット、および印刷が容易な形式で表示されます。

0
  1. Chromeにはdevtoolsが単独で付属しています。ちょうど 'F12'を押す。 https://developer.chrome.com/devtools

  2. ポストマン、それはあなたがする必要がある、(プラグインまたは特定のdevのツールバーを経由して)特定のブラウザに自分を結び付けたくないと仮定すると、https://www.getpostman.com/

関連する問題