11

非常に単純なテスト計画を作成します。

  1. ログイン: POST、セッション Cookie が返されます。
  2. 状態を取得する: GET、ユーザー状態が返されます。
  3. リソースの作成: POST、JSON 本文がリソースに提供されます。

したがって、私の「テスト計画」は次のようになります。

  • テスト計画
    • スレッドグループ
      • HTTP リクエストのデフォルト
      • HTTP Cookie マネージャー
      • ログイン(HTTPリクエストサンプラー:POST)
      • 状態の取得 (HTTP リクエスト サンプラー: GET)
      • リソースの作成 (HTTP リクエスト サンプラー: POST)

「ログイン」によって生成された Cookie が「Get State」に正しく追加されます。
ただし、「Create Resource」には Cookie がありません。注文を変更しましたが、役に立ちません。最初にデフォルトのオプションを使用し、いくつかのオプションを変更しましたが、それも役に立ちません。

JMeterのバグですか?それとも POST http リクエストだけでは Cookie を取得できませんか?
アドバイスをお願いします。

[解決済み]
メソッドではなく、パスに関連していることに気付きました。
Cookie のドメインとパスを確認します。つまり、Cookie のパスとドメインは、Set-Cookie ヘッダーを介してサーバー側で定義できます。

4

2 に答える 2

6

もう 1 つの解決策は、通常は bin の jmeter 起動スクリプトの横にある jmeter.properties で CookieManager.check.cookies=false を設定することです。

JMeter は、何らかの理由で、http://somesite/somethingelse を使用している場合、cookie に path=/something を設定できないと考えています。つまり、パスは現在のパスと一致する必要があります。

実際に存在する場合、ブラウザーがこの制限を強制するのを見たことがありません。この手法を使用して安全な Cookie を設定し、誰かの発言を /admin に転送するサイトをいくつか見たり書いたりしました。

プロパティファイルを変更する必要がないように、このオプションが少なくとも GUI にあればいいのにと思います。BlazeMeter は、flood.io がない場所のチェックをオフにするのに十分スマートだと思います。それが私次第であれば、これを完全にチェックするコードを削除するだけです。負荷テスターを必要以上に難しくするのはなぜですか。

于 2013-12-20T19:33:22.537 に答える