1

マイJMeterのテスト:ログイン資格情報を使用してCSVファイル(logins.csv)を超えるのJMeter - 複数のCSVファイルを介してユーザーの資格情報に基づいて特定のエンドポイントを叩く

  • 反復、及びそのユニークな識別子のユーザーCsvDataSetConfig
  • サインイン
  • ログイン資格情報(logins.csvの一意の識別子)に基づいて、<user_identifier>_invoices.csvという形式の2番目のファイルを特定して読み込み、そのユーザーの請求書を表示するために必要なパスがあります。

簡素化されたテストのセットアップ:

ThreadGroup 
> CsvDataSetConfig - file: logins.csv, variables: user_identifier,email,password, sharing_mode: all threads 
> `SignIn` TransactionController using email and password from above CSV file to login via series of HTTP Requests 
> UserParameters - USER_IDENTIFIER,INVOICE_CSV_FOR_USER 
> BeanShellSampler 
    props.setProperty("USER_IDENTIFIER", vars.get("user_identifier")); 
    props.setProperty("INVOICE_CSV_FOR_USER","${__P(USER_IDENTIFIER)}_invoices.csv"); 
> WhileController - condition: ${__javaScript("${invoice-id}" != "<EOF>",)} 
    > CsvDataSetConfig - file: ${__P(INVOICE_CSV_FOR_USER,)}, variables: invoice-id, sharing_mode: current thread 
    > `ViewInvoice` TransactionController with HTTP Request to url `../${invoice-id}` 

# logins.csv 
c7beaa99c6d99fa7754fc2213f9b17b8,[email protected],password321 
9c8466bee65e39c9d3cf715e42933c3b,[email protected],password456 

# c7beaa99c6d99fa7754fc2213f9b17b8_invoices.csv 
f54eca1cbbba4a97c1dc459e0ba64970 
0024f2cdf28dd7ebf3606988fd229afd 

# 9c8466bee65e39c9d3cf715e42933c3b_invoices.csv 
64f725fdeb2980b28bdf5e02076a55cd 
60ac45a12ea3d6b59c2cb82f27da1722 

問題:ローカルのJMeterで

  • 、ビジネスのための間違ったinvoice-idで作られているURLを請求する要求を見て。したがって、パラメータがスレッド間で正しく処理されていないようです。
  • BlazeMeterでは、whileコントローラの内容が決してヒットしないのを見ています。

私は、_invoices.csvファイルごとに50個の行を持つループコントローラを試しましたが、そのいずれにも割り当てられていませんでした。私はもともとユーザパラメータではなく のユーザ定義変数から始めましたが、後者はこのユースケースに使用する必要があります。

答えて

0

スレッドは同時に実行され、JMeterプロパティを共有しています。

テストプランでは、各スレッドがプロパティUSER_IDENTIFIERを設定します。したがって、このプロパティと他のプロパティは、異なるスレッドによってオーバーライドされ、不整合を作成する可能性があります。

は、私はあなたがスレッドで共有されていない変数に保存(および取得)お勧め:

BeanShellの程度も
vars.put("USER_IDENTIFIER", vars.get("user_identifier")); 

vars.put("INVOICE_CSV_FOR_USER"," ${USER_IDENTIFIER}_invoices.csv"); 

、JMeterのアドバイスchange to JSR223

へのJMeter 3.1以来、私たちは、スイッチング助言しますBeanShellからJSR223テストエレメント(詳細は以下のJSR223のセクションを参照)、__Beanshell関数から__groovy関数に切り替えることができます。

関連する問題