이것은 더 많은 디자인 문제입니다. 동시 사용자 수, 테스트를 실행하는 데 걸리는 시간 및 적중 될 URL 목록을 지정할 수있는 Java에서 http로드 생성기를 어떻게 설계 하시겠습니까?http로드 생성기 (Java)
some_load_generator -users n1 -time n2 -urls some_file_name.txt
이 프로그램은, 시작 사용자 수에 의해 지정된 스레드의 수를 만들고, 모든 스레드는 URL 파일에서 임의의 URL을 읽고 GET 요청을한다. 모든 요청에 대해 각 스레드는 전체 GET 요청을 완료하는 데 걸린 시간을 기록합니다. 5 초마다이 프로그램은 모든 스레드가 지금까지 만든 모든 요청에서 최소, 최대 및 평균 시간을 인쇄합니다.
스레드를 생성하고 최소, 최대 및 평균 정보를 저장하고 5 초마다 해당 정보를 인쇄하는 방법에 대해 설명해주십시오. 여기
는 내가 지금까지 생각했을 것입니다 :
이 프로그램은 사용자의 수에 해당하는 새로운 고정 스레드 풀 집행을 생성합니다. 이것은 스레드 라이프 사이클 관리를 필요로합니다.
Runnable 구현은 파일에서 한 행을 읽고 GET 요청을 내고 시간을 기록합니다.
내 주된 이슈은 이러한 변수에 대한 액세스를 동기화해야하므로 효율적으로 모든 스레드에서 최소, 최대 및 평균을 계산하는 방법입니다.
통계를 5 초마다 인쇄하기 위해 나는 깨어나서 통계를 표시하고 잠자기 상태로 되돌아가는 타이머 작업을 사용합니다. 여기서 중요한 문제는이 스레드가 인쇄를 시도하는 동안 통계 상태를 업데이트하려고하는 많은 스레드가 있기 때문에 타이머 작업을 효율적으로 예약하는 방법입니다. 나는이 스레드의 우선 순위를 다른 것에 비해 높일 수 있으므로 실행 중에 환경 설정을 가져올 수 있습니다.
Jmeter를 살펴보십시오 – Frank