質問

いゃ試験2つのスレッドグループ初のシングルスレッドを作成するもの在庫の第二は、複数のスレッドをご購入の全ての在庫).使っていBeanShellの主張およびXPath抽出器の解析を、返された値がXMLメモリカード取扱説明書別紙"変数"などのidを販売致します。)

でも、値が作成された最初のスレッドグループから標準 ${jmeter} 型変数、または ${__BeanShell(vars.get("jmeter"))} タイプvarsなどをご用意のスレッドグループです。直しとかは出来ないんですか作変数のスレッドグループ内で見えるの?

役に立ちましたか?

解決

(これらは個々のスレッドに対してローカルであるので)私は、変数でこれを行うことができませんでした。しかし、私はプロパティで、この問題を解決することができました!

ここでも、私の最初のスレッドグループは、設定のすべてを行い、と私は2番目のスレッドグループ内のスレッドのそれぞれに利用できるようにするという仕事からいくつかの情報を必要とします。私は、次のと最初のスレッドグループにBeanShellのアサーションを持っています:

${__setProperty(storeid, ${storeid})};

$ {storeidは}のXPath抽出で抽出しました。 BeanShellのアサーションはstoreidは以前の呼び出しなどから返されたことを確認するように、他のものを行います。

とにかく、第二のThreadGroupに、私は次のようにサンプラーに「storeid」プロパティの値を使用することができます:

${__property(storeid)}

作品の魅力のように!

他のヒント

にゃドキュメンテーション

16.12共有変数とスレッドとスレッドグループ

変数は現地のスレッドに変数を設定スレッドを読み込むことはできません ます。これによりデザイン。のための変数で決定され 前の試験開始、Parameterising試験はできません。の場合の値 はなまでの試験が始まり、様々なオプション:

  1. 店内は、変数プロパティとして-物件のグローバルに ゃインスタンス
  2. 書き変数をファイルの再読み込みます。
  3. 利用のdebconf.共有名前空間を見 16.8.2共有変数
  4. 書き独自のJavaクラス

別にそのような変数のスレッドが使用ゃ-プラグインとして 上記によるAndrey Botalov以下.

もう少し複雑ですがで完全に制御変数の中にはあらかのスレッドがthread.自分の考えBeanShell利用にどのように見えるかを確認でき簡単です:

Project stucture 次を参照し部分画像。

(1.1)ここで作成したカスタム変数のユーザー定義変数(または行うことができるのでBSF Proccessor-障害者この例では(1.2))

(2.1)(2.4)に成功した使用変数の初ねじていかなければなりません:)

(2.2)を追加BeanShell PostProcessor、私のカスタマイズ可変

(2.3)を追加でキュー

(3.1)第二のスレッド-変数からキュー-他のパティ"ダイアログが開きます。に注意してください、賢く、タイムアウトがこのスレッドが待ちに終前の仕上がりでできる改変数(実験も長い応答)

(3.2)(3.3)(3,4-ジ)を繰り返しの使用、改変数

(3.5)変数を送信し、再度新しいキューも提供に新しい名前で

(4.1)(4.2)(4.3)を掴んだ改変数から新しいキューなどの魅力

警告

  1. 追加した場合よりスレッドを追加してもカウンターのスレッドグループ変数に追加します変数名をキューの名前で同じスレッドグループがきくキューでキューにして独自の名称は各スレッドのコメントの書きが必要な場合は一部をより明確explenation)

  2. ば複数のhttpリクエスレッドグループにそれがすべてのスレッドの通信事前にプロセッサーの子として最終(その他の場合を実現したいいくつかのカスタムそのものhttpリクエスト

遊び、変更、カスタマイズにベスト結果)をスレッドが不要な行動ばなければなりませんでしさを伺.

Information about project structure

私はこれを成し遂げるための最も簡単な方法であると考えている見つけます。

使用

Bean Shell PostProcessor

変数を設定する( http://jmeter.apache.org/usermanual /best-practices.html#bsh_variablesする

import org.apache.jmeter.util.JMeterUtils;
JMeterUtils.setProperty("PC_CREATED_PROMO_CODE", "value");

か、変数から読んでいる場合は、

import org.apache.jmeter.util.JMeterUtils;
JMeterUtils.setProperty("PC_CREATED_PROMO_CODE", vars.get("Extracted_PC_CREATED_PROMO_CODE"));

そして他のスレッドグループから、( http経由でそれを読む:// JMeterを。 apache.org/usermanual/functions.html#__propertyする

${__property(PC_CREATED_PROMO_CODE)}

ゃプラグインが スレッド間の通信 この目的です。

の方法として2通りの方法がありご利用い:

  • PostProcessor/プリプロセッサ
  • 機能 __fifoPut__fifoPop

私の意見PostProcessor/プリプロセッサおり、より使いやすい

それは、通常のクライアントの動作(スレッド間でパラメータを共有する)ではないため、

このは、JMeterのは不可能です。代わりに、コントローラでこの使用1スレッド・グループのます:

Thread Group
+ Create inventory
+ + XPath
+ Loop
+ + Purchase inventory

さて、これはそれを行うための一つの方法です。後で、あなたのニーズに合わせて調整することができ、次の手順を実行し、それが動作します!変数は(JMeterはおそらく、この機能を呼び出す:))スレッド間で共有されていません。しかし、プロパティがあります!だから、そのようなproperyとして、あなたの変数を設定します:

1)あなたの試験プランをクリックして、「連続して実行スレッドグループ」を有効にする - >これは、スレッドグループはいないランダムに注文し、実行します。 (後でそれを調整することができますが、今のところ、それは仕事を得るために...)

2)例えば「セットアップ」と呼ばれるスレッドグループを作成します。そのスレッドグループ内の次のコードでBeanShellのサンプラーを追加します。

import org.apache.jmeter.util.JMeterUtils;
JMeterUtils.setProperty("theNameOfYourNewProperty", "theValueOfYourPropery");

だから今プロパティが設定されています!あなたはproperyとして保存する価値が出回っ変数であるならば、あなたが行うことができます(ユーザは、例えば、変数やreqex変数をdefinded):

JMeterUtils.setProperty("theNameOfYourNewProperty", vars.get("theNameOfYourVariable"));

3)1より高いスレッドの数と、例えばTESTGROUP「実際の試験」を追加。    テストを追加し、その試験を次のコードでBeanShellのプリプロセッサを追加します。

import org.apache.jmeter.util.JMeterUtils;
vars.put("theNameOfYourNewProperty", JMeterUtils.getProperty("theNameOfYourNewProperty"));

だから今、あなたのシステムプロパティtheNameOfYourNewPropertyの値を持つtheNameOfYourNewPropertyと呼ばれるそのスレッド内の変数を作成しました。テストでは、あなたが今のようにアクセスすることができます:

${theNameOfYourNewProperty}

そして、それだけではなく、単に最初のスレッド、各スレッドのために動作します..

トピックに第二の人生を与える」してみましょう:)スレッド間で変数を転送するもう一つの方法は、ファイルへの読み取り/書き込みすることです。

このスレッド間で変数を渡します

別の解決策は、データセットを管理するためのシンプルなテーブルサーバを使用することです。 この機能は、1.2のJMeterプラグインを追加しました。

<「主なアイデアは、ファイル内のデータのの取得の/ 追加の行に簡単なコマンドでデータセットのファイルを管理するためのJMeterプラグインに小さなhttpサーバを使用することです」 / P>

のドキュメントを見てください: http://jmeter-plugins.org/wiki/HttpSimpleTableServer/する

よろしくます。

JMeterの豆シェルアサーション

ただ、それは他のスレッドになった後も値を保持します(グローバル変数のような)変数に値を代入するプロパティ関数を使用する豆の殻のアサーションを追加します。

  

スレッドグループ>>追加>>アサーション>>豆シェルアサーション

${__setProperty(Global_variable_Name,${Variable_name_whose_Value_to_be_Passed})}

、その後することができます他のスレッドでは、このグローバル変数を呼び出して、それを使用することができます。

以下のあなたが格納された値を呼び出すために使用する必要がある機能があります:

${__property(global_variable_name)}

https://medium.com/@priyank .IT / JMeterの-通過-変数-間-スレッド-a4dc09903b59

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top