質問

アプリケーションには簡単なパフォーマンス テスト フローがあります。

  1. ログインします
  2. いくつかの条件に基づいて検索する
  3. 異なるパラメータに対して検索を繰り返します。

Jmeter を使用してパフォーマンス テストを行っています。これをスケーラブルな方法でテストするには、複数のスレッドを実行する必要があります。

現在、これを整理する方法は次のとおりです。

-Test Plan
  - Thread Group
      - Cookie Manager
      - Login To application
      - Search on param 1
      - Search on param 2
  - results summary table
  - Summary report

したがって、基本的には、要約リターン テーブルとレポートがプラン レベルで存在し、Cookie マネージャーがスレッド グループ レベルで存在します。

1 つのスレッドに対して実行すると、問題なく実行され、正常に完了します。複数のスレッドにスケールすると、次のスレッドが開始されるとすぐに、最後のスレッドのセッションが無効になります。これにより、新しく生成されたスレッドが原因で、すでに実行中のすべてのスレッドに障害が発生します。

私は観察してこの結果に到達しました。
1.複数のスレッドを実行すると、結果概要ツリーに有効な応答が得られるのは最後のスレッドだけです
2.立ち上がり期間を 10 秒として 2 つのスレッドを実行すると、つまり各スレッドが終了するまでの時間が得られ、両方とも正常に実行されます。

私の理解によると、各スレッドはアプリケーションにログインし、Cookieマネージャーはスレッドレベルにあるため、値は各スレッドのセッションIDにそれぞれ維持されますか?しかし、スレッド間でセッション ID 値がオーバーライドされる原因は何でしょうか?

ご協力をよろしくお願いいたします。

役に立ちましたか?

解決

JMeterのドキュメントからコピーされます:

  

最後の要素はHTTPクッキーです   マネージャー。 Aクッキーマネージャはする必要があります   そうでない場合 - すべてのWebテストに追加   JMeterはクッキーを無視します。 を追加することにより、   そのスレッドグループレベルでは、我々   すべてのHTTPの意志を要求していることを確認   同じクッキーを共有しています。

の "4.2.2ロジックコントローラ" の章から http://jmeter.apache.org/ usermanual / test_plan.htmlするます。

編集:私はあなたが HTTPを使用する必要がありますね:// jmeter.apache.org/usermanual/component_reference.html#Simple_Controllerは、クッキーマネージャを使用して要求をグループにします。

他のヒント

私はアンドレイの答えは助けることができないと思います。彼は、各要求は、同じクッキーを使用することを引用するが、マニュアルのJMeterに従ってます:

  各JMeterのスレッドは、独自の "クッキーの記憶領域を" 持っています。

私の知る限りは質問を理解して、あなたはそれぞれのスレッドが同じセッションIDのクッキーを共有したいです。だから、あなたが2つのスレッド・グループを持っており、連続してそれらを実行する必要があるように思えます。 (実行一度だけその単一のスレッドで)最初のスレッドグループは、グローバルパラメータ(おそらくあなたはJMeterののスクリプト機能を使用する必要があります)へのセッションCookieの値をログインして保存してください。 その後、設定、第2スレッドグループのクッキーマネージャでクッキー。

希望に役立ちます。

時間までランプを高めるようにしてください。私はタイムアップランプは、私がスレッドごとに3秒に増加し、それが罰金を走った後、1秒程度であった同じ問題に遭遇しました。

これを試してみてください

オープンuser.propertiesはJMeterののbinフォルダに存在します。

編集これと次の行を追加します:

CookieManager.check.cookies=false

それスクリプトを保存して実行します。私はそれはあなたの問題を解決することを願っています。

最初ににあなたのコードを変更します:

jmeter.properties
CookieManager.save.cookies=true
CookieManager.name.prefix=mycookie_

次に、あなたのJavaのサンプラーと同じスレッドグループ内のHTTPクッキーマネージャを追加します。

次に、あなたのJavaのサンプラーの追加でます:

JMeterVariables jmv = JMeterContextService.getContext().getVariables();
Iterator<Map.Entry<String,Object>> it = jmv.getIterator();
while(it.hasNext()){
    Map.Entry<String,Object> v = it.next();
    System.out.println("name: " + v.getKey() + " value: " + v.getValue());
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top