2012-08-15 10 views
6

hello browsermob proxy + seleniumテストフレームワークを使用してHTTP POSTリクエストで実際のPOSTデータを取得しようとしています。だから基本的に私はセレンを使用して自動テストを実行しており、テスト中にキーと値のペアと実際のPOSTデータを取得したい。次のロジックを使用すると、POSTヘッダーのキー/値のペアのみをキャプチャできますが、実際のP​​OSTデータ(フォームフィールドID値とも呼ばれます)はキャプチャできません。実際にPOSTDATAをキャプチャする方法はありますか(Firefoxの改ざん/ライブヘッダーなどのスニッフィングアプリケーションのような)?私が読んなく、仕事に得ることができなかった別の方法がtrueにbrowsermobプロキシサーバーで、次のフラグを設定することでしたbrowsermob-proxyとseleniumでhttp POSTリクエストをキャプチャする方法

ProxyServer proxyServer = null; 
proxyServer = new ProxyServer(9101); 
proxyServer.start(); 

proxyServer.setCaptureContent(true); 
proxyServer.setCaptureHeaders(true); 

Proxy proxy = proxyServer.seleniumProxy(); 
proxy.setHttpProxy("localhost:9101"); 

//selenium test config code, omitted for brevity 

proxyServer.addRequestInterceptor(new HttpRequestInterceptor() { 
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException { 
    Header[] headers = request.getAllHeaders(); 
    System.out.println("\nRequest Headers\n\n"); 
     for(Header h : headers) { 
      System.out.println("Key: " + h.getName() + " | Value: " + h.getValue()); 
     } 

    } 
}); 

proxyServer.setCaptureContent(true); 
proxyServer.setCaptureHeaders(true); 

次に出力実際のHARファイル:

Har har = proxyServer.getHar(); 
Date date = new Date(); 
har.writeTo(new File("c:\\tmp\\har_" + date.getTime())); 

キーと値のペア、POSTデータ、実際の応答内容を確認するには...ただし、HARファイルを解析すると、POSTヘッダーのキーと値のペアのみが表示されます。 POSTデータなし...応答なしseコンテンツ。私は実際のPOSTデータにしか関心がありません。

+4

最終的には、私のワークスペースにbrowsermobプロキシプロジェクトをチェックアウトした後に気にすることはありません。 proxyServer.setCaptureContent(true)および proxyServer.setCaptureHeaders(true)は、HAR obj内のPOSTパラメータを取得するためにのみ有効です。 proxyServer.addRequestInterceptorはPOSTパラメータを取得しません。 – Selwyn

+0

このコメントは本当に答えになるはずです。しかし、コメントありがとう! –

答えて

0

私も同じ問題がありました。解決策として、すべてのデータをキャプチャし、HARファイルをJSONに変換した後、JSONファイルからのPOST要求のみをフィルタリングしました。

関連する問題