0

さて、Badboy を使用してスクリプトを記録し、それを Jmeter にエクスポートしました。スクリプトには、名前付きのファイルを開始するポスト リクエストが含まれています。

リクエストとともに送信されるパラメータ

noCache=1404378079862 {"alf_destination":"workspace://SpacesStore/${UUID}","prop_cm_name":"File _2","prop_cm_title":"","prop_cm_description":""}

テスト計画を実行するたびに、POST 要求に対して 500 エラー コード (内部サーバー エラー) の応答が返されます。

{ "status" : { "code" : 500, "name" : "Internal Error", "description" : "An error inside the HTTP server which prevented it from fulfilling the request." }, だから私はリクエストをキャプチャするためにクロム開発者ツールを使用しましたが、すでに存在する名前のファイルを作成しようとすると、サーバーが500エラーコードで応答し、jmeterによって送信されたリクエストが異なることがわかりました開発者ツールでキャプチャしたものよりも、jmeter から送信されたものです。

POST https://${ServerName}/share/proxy/alfresco/api/type/cm%3acontent/formprocessor

そして、私が開発者ツールによってキャプチャしたものを聞いています:

POST https://${ServerName}/share/proxy/alfresco/api/type/cm%3acontent/formprocessor?noCache=1404586721426&{"alf_destination":"workspace://SpacesStore/${uuid}","prop_cm_name" :"file_2,"prop_cm_title":"","prop_cm_description":"","prop_cm_content":"ラマダン カリーム","prop_mimetype":"text/plain","prop_app_editInline":"true"}

作成したいファイルの名前を変更しましたが、同じエラーが発生します解決策を検索しましたが、何も変更されていません。繰り返しのたびにキャッシュとクッキーをクリアしようとしましたが、うまくいきませんでした。

そして、ここにjmeterによって行われた完全なリクエストがあります

POST https://${server}/share/proxy/alfresco/api/type/cm%3acontent/formprocessor

POST データ: noCache=1404586721426&%7B%22alf_destination%22%3A%22workspace%3A%2F%2FSpacesStore%2F${uuid}%22%2C%22prop_cm_name%22%3A%22file_2%2C%22prop_cm_title%22%3A%22 %22%2C%22prop_cm_description%22%3A%22%22%2C%22prop_cm_content%22%3A%22Ramadan+kareem%22%2C%22prop_mimetype%22%3A%22text%2Fplain%22%2C%22prop_app_editInline%22%3A %22true%22%7D=

Cookie データ: $Version=0; JSESSIONID=6508CDFBEF16F2D601CF1E672EB00D62.worker2; $Path=/共有/; alfLogin=1404810408; $Path=/シェア; alfUsername3=jmeter01; $Path=/シェア; NSC_NzTibsf_TTM=ffffffff09f01c8f45525d5f4f58455e445a4a42378b; $パス=/

リクエスト ヘッダー: 接続: キープアライブ Alfresco-CSRFToken: ${COOKIE_Alfresco-CSRFToken} コンテンツ タイプ: application/json;charset=UTF-8 コンテンツの長さ: 359 ホスト: myshare.kfshrc.edu.sa ユーザー エージェント: Apache -HttpClient/4.2.6 (Java 1.5)

このエラーが発生する理由を説明できる人はいますか?

4

2 に答える 2

1

残りのスタックトレースを投稿できますか? 主な原因を明らかにするものではなく、原因が異なる場合があります。

バージョン 4.1.7 以降の Alfresco システムをパフォーマンス テストしようとしている場合、Cookie を介して設定され、Alfresco-CSRFTokenヘッダーとして送信する必要がある CSRF フィルター保護が原因で、リクエストが失敗する可能性があると思います。

それをバイパスするには、次のことを考慮してください。

  1. HTTP Cookie Managerをテスト計画に追加する
  2. jmeter.propertiesファイル (JMeter インストールの /bin フォルダーの下にあります) で、次のプロパティを定義します。CookieManager.save.cookies=true
  3. JMeter を再起動します (プロパティの変更は動的ではありません)。
  4. 失敗しているリクエストの子としてHTTP ヘッダー マネージャーを追加します。次のように入力します。

    • ヘッダー 1
      • 名前:Alfresco-CSRFToken
      • 価値:${__javaScript(decodeURIComponent("${COOKIE_Alfresco-CSRFToken}"),)}
    • ヘッダー 2
      • 名前:Content-Type
      • 価値:application/json;charset=UTF-8

お役に立てれば。

于 2014-07-07T12:33:43.053 に答える