2

JMeter を使用して Eclipse-RAP アプリケーションをテストしています。
RAP では、クライアント (ブラウザーの JavaScript フレームワーク) は、json ベースのプロトコルを介してサーバーと通信します。

メッセージは次のようになります。

{"head":{"requestCounter":3,"uiSessionId":"832834"},"operations":[["set","w1",{"bounds":    [0,0,1680,893],"cursorLocation":[1262,-1]}]]}

uiSessionId. I extracted this id using a "Regular Expression Extractor" and stored it in a variable namedご覧のとおり、 UI_SESSION_ID`に保存されているセッション ID があります。
次に、記録された HTTP リクエストの生の「投稿本文」を編集しました。

{"head":{"requestCounter":3,"uiSessionId":"${UI_SESSION_ID}"},"operations":[["set","w1",{"bounds":    [0,0,1680,893],"cursorLocation":[1262,-1]}]]}

そしてそれは動作します。

しかし、私は多くの可能性がある各HTTPリクエストの各ポストボディを変更する必要があります. いくつかの調査の後、「BeanShell PreProcessor」を使用するのが正しいと思いましたが、

var sampler = ctx.getCurrentSampler();

HTTPSampler が提供されますが、投稿本文を取得し、セッション ID を変数に置き換えて、変更された投稿本文を設定できるメソッドが見つかりませんでした。
JavaDoc: http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/sampler/HTTPSampler.html

uiSessionIdすべてのリクエストを手動で変更せずに変数に置き換える方法を知っていますか?

4

1 に答える 1

0

その必要はありません。ヘッダーは、RAP での複数のブラウザー タブのサポートに備えてマイルストーン バージョンで導入されましたが、このuiSessionIdヘッダー パラメーターを使用しない別のメカニズムに置き換えられました。

RAP 2.1 RC1 以降、クライアントは URL パラメータですべての POST リクエストに「接続 ID」を付加しますcid。このパラメーターは負荷テストには影響しないため、記録から削除する必要はありません。すべての jmeter スレッドは独自の HttpSession を取得するため、すべてのスレッドが同じ cid を持っていても問題ありません。

この変更の理由の 1 つは、これまで苦労してきたような問題を起こさずに RAP アプリケーションのテストをロードできることです。

于 2013-05-23T09:14:32.290 に答える