2016-12-27 69 views
0

テストが開始されたときにint変数をプロパティ(グローバル)として一度しか初期化する方法が見つかりません。私のテスト計画は複数のスレッド、複数回のループ反復を持ち、私のbeanshellスクリプトの中で変数を使いたいですが、何かの前にある値を持っていて、その後ループとスレッドに必要に応じて定義させます。 UDVの設定を試しましたが、運がありません。また、グローバル(複数のスレッドグループのプロパティとして)にしたいのですが、その方法を見つけることができませんでした。JMeterは一度だけグローバル変数を初期化します

答えて

1

代わりにプロパティを使用しない理由は何ですか?たとえば、あなたはuser.propertiesファイル

foo=100 

に次の行を追加することができますなど-Jコマンドライン引数を経由してのJMeterに渡す:一度あなたが値を使用することができます行わ

jmeter -Jfoo=100 -n -t yourscript.jmx 

:必要な __P()機能を使用して

  1. :3の方法で、

    ${__P(foo,)} 
    
  2. それはBeanShellのに来るときUser Defined Variablesの構成要素

    User Defined Variables - property to variable

  3. を使用して、グローバル変数に変換 - 代わりにvars

    int foo = Integer.parseInt(props.get("foo")); 
    

のJMeterプロパティのprops速記を使用J全体についてグローバルである複数のスレッドグループからアクセスすることができます。 JMeterのプロパティとそれらの設定と上書きの方法の詳細については、Apache JMeter Properties Customization Guideを参照してください。

+0

プロパティファイルに追加すると仮定すると、テスト(プロパティの初期化後)でその値を変更することは可能でしょうか? – Testerone

+0

もちろん、Beanshellや[__setProperty()](https://www.blazemeter.com/blog/knit-one-pearl-two-how-use-variables-different-thread-groups)の機能を使って行うことができます。 –

関連する問題