6

JMeter で JSF ベースの Web アプリケーションの https セッションを記録していますが、動作していません。

ターゲット アプリケーションのホスト: AWS
JMeter バージョン: 2.9 r1437961
ブラウザー: Chrome バージョン 29.0.1547.65
Java: Java バージョン "1.6.0_27"
OpenJDK ランタイム環境 (IcedTea6 1.12.5) (6b27-1.12.5-0ubuntu0.12.04.1)
OpenJDK サーバー VM (ビルド 20.0-b12、混合モード)
OS: Ubuntu 12.04

プロキシ サーバー構成:
ポート: 8084
ターゲット コントローラー: テスト計画 > スレッド グループ
キャプチャ HTTP ヘッダーがチェックされます。
HTTP サンプル設定:
タイプ: 選択されていません。リダイレクトに従い、KeepAlive を使用するにチェックを入れます。

除外する URL パターン:
1. 除外候補を追加
2. .*\.jsf

スローされる例外 (JMeter.log から):

ERROR - jmeter.protocol.http.proxy.Proxy:  java.net.SocketException: Connection closed by remote host
    at sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1377)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:62)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at org.apache.jmeter.protocol.http.proxy.Proxy.writeToClient(Proxy.java:404)
    at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:218)

ERROR - jmeter.protocol.http.proxy.Proxy: Problem with SSL certificate? Ensure browser is set to accept the JMeter proxy cert: Connection closed by remote host java.net.SocketException: Connection closed by remote host
    at sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1377)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:62)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at org.apache.jmeter.protocol.http.proxy.Proxy.writeToClient(Proxy.java:404)
    at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:218)


私が従う手順は次のとおりです
。 1. 8084 を指すプロキシ サーバーを
設定します。 2. クロムからプロキシ設定を変更します。https プロキシを 8084 に設定します
。 3. すべてのクロム拡張機能とクロム アカウントを無効にします。
4. jmeter プロキシ サーバーを起動し、 5 を押しますhttps://url/login
。ブラウザに証明書の確認ページが表示されます。一方、jmeter.log には次のように表示されます。

   2013/09/11 13:16:30 INFO  - jmeter.protocol.http.proxy.Daemon: Creating Daemon Socket on port: 8084 
2013/09/11 13:16:30 INFO  - jmeter.protocol.http.proxy.Daemon: Proxy up and running! 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: Proxy will remove the headers: If-Modified-Since,If-None-Match,Host 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: Opened Keystore file: /home/abhijeet/Automation_Dev/LoadAutomation/Jmeter/apache-jmeter-2.9/bin/proxyserver.jks 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: KeyStore for SSL loaded OK and put host in map (clients4.google.com) 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: Opened Keystore file: /home/abhijeet/Automation_Dev/LoadAutomation/Jmeter/apache-jmeter-2.9/bin/proxyserver.jks 
2013/09/11 13:22:39 INFO  - jmeter.protocol.http.proxy.Proxy: KeyStore for SSL loaded OK and put host in map (translate.googleapis.com) 
2013/09/11 13:22:40 INFO  - jmeter.protocol.http.sampler.HTTPHCAbstractImpl: Local host = abhijeet-desktop 
2013/09/11 13:22:40 INFO  - jmeter.protocol.http.sampler.HTTPHC4Impl: HTTP request retry count = 1 
2013/09/11 13:22:40 INFO  - jmeter.protocol.http.sampler.HTTPHC4Impl: Setting up HTTPS TrustAll scheme 
2013/09/11 13:22:40 INFO  - jmeter.protocol.http.proxy.FormCharSetFinder: Using htmlparser version: 2.0 (Release Build Sep 17, 2006)<br>

6. スレッド グループは、これらのドメインへの不明なリクエストを表示し始めます。

1. translate.googleapis.com
2. clients4.google.com
3. www.google.co.in
4. www.google.com
5. ssl.gstatic.com
6. safebrowsing.google.com
7. alt1-safebrowsing.google.com
8. clients4.google.com
9. www.gstatic.com
.
.
n all other requests going to the target application.

(リクエストごとに上記の例外がスローされます)

アドレスバーにURL文字列を入力しているときに、ChromeがGoogleでキーワードを動的に検索しているため、上記のGoogleドメインリクエストが記録されていると思います。しかし、これらのリクエストがスレッド グループに記録されることは望ましくありません。

また、次のページの解決策を試しましたが、うまくいきませんでした:
リンク 1
リンク 2
リンク 3

JMeter が既に持っている偽の証明書を使用できない理由がわかりません。Chrome で SSL 設定を確認しましたが、JMeter 証明書が見つかりませんでした。助けが必要!!

4

4 に答える 4

2

私は同じ問題を抱えており、証明書を信頼するように解決しています。私が見たときと同じように

Options > Advanced > Certificates > View Certificates ==> Authorities

ApacheJMeterRootCertificate.crtという名前または関連する名前が表示されませんでしたが、次のような名前があることに気付きました

_これがあなたの証明書でない限り、インストールしないでください

このオブジェクトと、このオブジェクトの下にある「Edit_Trust」の両方の項目をクリックします。スクリーンショットを共有します。これがあなたや他の人に役立つことを願っています。

私はFirefoxを使用しています。クロムでは、証明書を編集する同様の方法があるはずです。

ここに画像の説明を入力

于 2013-12-03T10:13:48.710 に答える
0

jmeter 2.12 は HTTPS を適切にサポートしています。ワークベンチの下で、[追加] -> [非テスト要素] -> [HTTP(S) テスト スクリプト レコーダー] を選択します。このバージョンは私にとって初めて機能しました。

于 2015-01-07T10:10:28.743 に答える
0

Google Chrome の最新バージョンでは、フィッシングや中間者攻撃などのセキュリティの脅威を回避するために、セキュリティ設定をバイパスすることが困難になっています。

HTTP(S) 記録用の JMeter 自己署名証明書を許可するように Google Chrome (v.54.0) を正常に構成しました。

ここに手順があります(Windowsの場合):

  1. MMC コンソールを開きます (SUPER + R、mmc と入力し、Enter キーを押します)。
  2. ファイルの選択 スナップインの追加と削除
  3. 現在のユーザーの証明書スナップインの選択
  4. 信頼されたルート証明機関を選択 >> 証明書
  5. Certificates フォルダーを右クリックし、[すべてのタスク] >> [インポート...] を選択します。
  6. デフォルトのオプションを維持したまま、ウィザードを使用して JMeter 自己署名証明書をインポートします。
  7. インストールしたら、JMeter 自己署名証明書を右クリックし、[プロパティ] を選択します。
  8. [全般] タブで、[すべての目的で有効にする] オプションが選択されていることを確認します
  9. Cross-Certificates で、記録するアプリケーションの URL を含めます (必ず完全な URL を入力してください。例: https://www.live.com )
  10. すべてのウィンドウを閉じます。
  11. 終わり。これで、Chrome セキュリティ アラートをバイパスして目的地に到達し、記録を開始できるはずです。
于 2016-11-21T15:46:02.307 に答える