2017-03-02 8 views
0

を要求します特定のユーザの結果を計算するJMeterの非同期遅延は2つのエンドポイントを持つAPIを考える

そして、このような計算には1から

そして、現在、私のJMeterスクリプトが正常にすべてのそれらの提出を行うことが可能であり、それは結果

を受信して​​、私が直面している厄介な問題が現在あることであることを考えるまでそれが絶え間なくresult endpointを照会することをことを考えるを完了するために5秒result endpointが非常に軽い/迅速なリクエスト(結果がまだ計算されていない場合)のために、より多くのリクエストはサブミットエンドポイントではなくresult endpointになります。

このような振る舞いが全体的なスループットの測定を歪ませることを考えると、

そしてConstant Timerブロックに全体の要求スレッドを追加すると、タイマーが

を完了するまで、他の要求が作成されませんそして、私の質問があることを考える:するJMeterは一つの方法または他のいずれかの能力を提供しています:

  1. ように0123非同期に基づいてHTTPリクエストに遅延を導入
  2. を要求する(そうresults endpointは低い優先度を有するであろう)またはいずれかを優先リクエストはAPIのすべての注目を集めることにはなりませんか?
+0

プランのスナップショットをここに表示してください。それが助けになるでしょう –

答えて

1

そして、あなたは同じスレッドグループにあなたのサンプルを持っているような全体の要求 スレッド定数タイマー・ブロックを追加し、タイマーが

を完了するまで、他の要求が作成されませんが見えることを考えると、あなたじゃない?

「はい」の場合は、それを分割します。「結果」要求に対して別のスレッドグループを確立し、そこに必要なタイミングを設定します。

最初に計画を立てれば素晴らしいかもしれませんが、

UPD:スレッド間で通信する必要があります。

次に、JMeterプロパティを使用することができます(これは最もシンプルで最も粗い方法です)。 ファイルやその他のストレージ(単純なin-mem DBなど)を共有リソースとして使用します。 またはhttps://jmeter-plugins.org/wiki/InterThreadCommunication/を使用してください。 または、これらの方法のいずれかを組み合わせたものを自分で作成してください。

+0

@yuri_g私はすべての私のエンドポイントに対して1つのスレッドグループを利用するということは間違いありません。私の結果エンドポイントは、提出エンドポイントから受け取った応答によって提供される特定のIDを必要とします。私はちょうど1つのスレッドグループから別のスレッドグループにそのような値を渡す方法を理解する必要があります。 –

関連する問題