2017-01-13 312 views
0

私はsetUpスレッドグループの下にBeanShell PostProcessorを持っています。
テストプランのテストスレッドグループにシステムプロパティとして渡すArrayListを生成します。
この配列には、テストグループ内のスレッドの数が含まれています。
構文は何ですか?トレッドグループ "Number of Threads(users)"の配列の要素をどのように参照する必要がありますか?JMeter - 配列をプロパティ変数に渡すには?

は、これはこれは私がそれが動作しないスレッド

${__P(users).get(0)} 

の数に入れて何である私は、セットアップスレッドグループ

ArrayList users = new ArrayList(); 
${__setProperty(users, ${users})}; 

に持っているものです。
おかげ enter image description here enter image description here

答えて

1

あなたが本当に "のArrayListを" 必要な場合は、次のように "bsh.shared" 名前空間にArrayListのを入れてセットアップスレッドグループ内のbsh.shared namespace

  1. を使用して行くことができます:

    ArrayList users = new ArrayList(); 
    users.add(5); 
    bsh.shared.users=users; 
    
  2. 通常のスレッドグループでは、__BeanShell functionで値を読み取ることができます。

    ${__BeanShell(bsh.shared.users.get(0),)} 
    

私はあなたのテストがひどく設計されており、あなたがスクリプトのや配列を使用しての少なくとも取り除くことができることを感じるが。

+0

ドミトリーあなたの提案はうまくいきません。私はスクリーンショットを添付しました。なぜあなたはそれが悪いデザインだと思いますか? setUpスレッドグループでJSONファイルを1回読み込み、すべての変数配列をテスト計画の他のスレッドグループに渡します。 – Vladimir

+0

私の提案はうまくいきますが、setUpスレッドグループのBeanshell PreProcessorは[PostProcessors](http://jmeter.apache.org/usermanual/component_reference.html#postprocessors)として動作しません。ポストプロセッサは無視されています。それをサンプラーに変更すると、すべてが期待通りに機能し始めます。 JMeterテストでBeanshellスクリプトを使用する方法の詳細については、[BeanShellの使い方:JMeterのお気に入りの組み込みコンポーネント](https://www.blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell)の記事を参照してください。 。 –

+0

ありがとう、ドミトリ。それは本当に今働く!実際の例では、HTTPサンプラーとBeanShell PostProcessorが添付されています。あなたのソリューションはその場合にも機能します。 – Vladimir

関連する問題