1

내 JMeter를 테스트 : 로그인 자격 증명을 사용하여 CSV 파일 (logins.csv) 이상JMeter를 - 여러 CSV 파일을 통해 사용자 자격 증명에 따라 특정 엔드 포인트를 친

  • 으로 반복하고, 자신의 고유 식별자 유저 (A) CsvDataSetConfig
  • 로그인
  • 로그인 자격 증명 (logins.csv의 고유 식별자)을 기반으로 <user_identifier>_invoices.csv 형식의 두 번째 파일을 식별하고로드 한 다음 해당 사용자의 송장을 볼 수있는 경로가 필요합니다.

단순화 된 테스트 설정 :

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를에서

  • , URL을 청구 요청을보고이 사업에 대한 잘못된 invoice-id으로 만들어지고. 그래서 매개 변수가 스레드간에 올바르게 처리되지 않는 것 같습니다.
  • 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 함수로 전환 할 수 있습니다.