4

私のテスト計画には、次のようなスレッド グループが含まれています。

  • 一度だけコントローラ:アプリケーションにログイン
    • CSV Data Set Config : アプリケーションへのログインに使用される情報
    • コントローラーは一度だけ
      • HTTP Request : POST ログイン情報
    • ループコントローラー(10回)
      • HTTP Request : POST 「質問」に「コメント」を追加

私の CSV データセットには次のフィールドが含まれています。

  • ユーザー名
  • パスワード
  • group_id

ユーザーは、その group_id に応じて質問にアクセスできます。スレッドごとに 10 個のコメントをさまざまな質問に追加したいと考えています。

questions_by_group_${group_id}.txt私の考えは、アクセスできる質問のIDを含むようなファイルを作成することでした${group_id}。次に${__StringToFile(questions_by_group_${group_id}.txt)}、POST パラメーター値でコメントを追加できます。関数を使用__StringToFileすると、呼び出しごとにファイルの行をループする必要があります。そうすれば、さまざまな質問に多くのコメントを追加できます。

問題は、JMeter がファイルを 1 回開いて、すべてのスレッドで共有しているように見えることです (すべてのスレッドで${group_id}変更が行われることを知っていたとしても.

私は多くのことを試しました

  • ${__StringFromFile(questions_by_group_${group_id}.txt)}
  • ${__StringFromFile(${__eval(questions_by_group_${group_id}.txt)})}
  • ${__eval(${__StringFromFile(${__eval(questions_by_group_${group_id}.txt)})})}

しかし、何も機能しません。

4

1 に答える 1

1

StringFromFileはデフォルトでこのように機能します。以下をお読みください。

csvは次のように整理できます。

  • ユーザー名、パスワード、group_id、commentID1、commentID2...。

次に、CSVデータセット構成をOnceOnlyControllerの前に置きます。

たとえば、共有モードをすべてのスレッドに設定します。

最後に、__StringFromFileを使用する代わりに変数を使用します。

このファイルを作成してgroup_ididを繰り返す必要があるため、これは最善の解決策ではありません。

グループの数がそれほど多くない場合の別のオプションは、setUpスレッドグループでこれを行うことです。

  • 以下を含むCSVファイルを読み取ります。

      groupID1, IDA1, IDA2,....
      groupID2, IDB1, IDB2,....
      ...
    
  • グループごとに1つのプロパティを設定する__setProperty、またはBeanshellサンプラー内でこれを呼び出す:

    JMeterUtils.setProperty(propertyName, propertyValue);
    

次に、コントローラーでBeanshellサンプラーを使用して以下を使用してIDを取得します。

    JMeterUtils.getProperty(propertyName);

私はこれらすべての解決策が嫌いだと言わなければなりません:-)

于 2012-10-10T20:01:05.813 に答える