내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
이전 연구에서는 JMeter를 사용하여 Agileone 시스템에 대한 프로토콜 수준 인터페이스 테스트를 완료했습니다. 또한 성능 테스트 기술의 핵심은 멀티스레딩 기술을 사용하여 프로토콜 요청을 보내 시스템에 액세스하는 많은 수의 사용자에 대한 시뮬레이션을 완료하는 것임을 알고 있습니다. JMeter의 원래 디자인 의도는 실제로 성능 테스트를 위한 것입니다. 예를 들어 테스트 계획을 만드는 첫 번째 단계는 스레드 그룹을 만드는 것입니다. 이 실험에서는 JMeter를 사용하여 Phpwind 로그인 및 게시 성능 테스트를 완료하는 방법을 설명합니다.
목적
(1) JMeter에서 연관 검색 사용법을 익히십시오.
(2) JMeter의 스레드 디자인과 사용법을 마스터하세요.
(3) JMeter에서 테스트 보고서의 사용법을 숙지하십시오.
실험 과정
testuser_1부터 testuser_100까지 Phpwind에 대해 총 100명의 사용자를 생성했으므로 성능 테스트 프로세스 중에 실제 시나리오를 더 잘 시뮬레이션하기 위해 사용자의 무작위 로그인을 구현해야 합니다.
(1) "HTTP 요청" 샘플러를 생성하고 이름을 "DoLogin"으로 지정한 다음 해당 로그인 POST 요청 매개변수를 입력합니다.
(2) 샘플러에 대한 "응답 어설션" 및 "결과 트리 보기"를 생성하고 후속 요청에도 동일하게 적용됩니다.
(3) 샘플러에 대한 "전처리기"를 만들고 1부터 100까지의 난수를 구현합니다.
(4) 최종 구현된 테스트 요청은 다음과 같습니다.
Phpwind에 게시할 때 값이 난수인 "verify" 필드를 지정해야 하므로 정규식을 사용하여 응답에서 해당 값을 연결해야 합니다. 이 부분은 인터페이스 테스트의 구현 프로세스에서 마스터되었습니다. 여기서는 주로 JMeter에서 구현하는 방법을 살펴봅니다.
(1) "HTTP 요청" 샘플러를 추가하고 "/phpwind/post.php?fid=2"에 GET 요청을 보내 응답을 받습니다.
(2) 샘플러에 포스트 프로세서를 추가하고 "Regular Expression Extractor"로 설정하고 다음과 같이 설정합니다.
(3) 위 입력 필드에 대한 간략한 설명:
a) 참조 이름: 다음 요청에서 참조할 매개변수의 이름입니다. verifycode를 입력하면 ${verifycode}를 사용하여 참조할 수 있습니다.
b) 정규 표현식: 괄호에는 추출할 내용이 포함되어 있으며, 이는 우리가 적용할 수 있는 기술입니다.
c) 템플릿: $-$로 인용됩니다. 우리가 설정한 정규 표현식이 여러 값을 찾으면 시퀀스 번호는 처리할 값을 나타냅니다.
d) 일치하는 숫자: 0은 임의의 값을 나타내고, 1은 모든 값을 나타내며 일반적으로 0을 채웁니다.
e) 기본값: 매개변수가 값을 얻지 못하면 기본값이 주어집니다.
(1) 샘플러에 대한 사용자 매개변수를 설정하고 기능 도우미를 사용하여 게시물 제목과 내용에 대한 난수를 생성합니다.
(2) 이전 단계에서 얻은 검증 코드를 POST 요청 본문의 검증 필드 값으로 사용합니다.
(3) 최종 생성된 테스트 요청은 다음과 같습니다.
기본적으로 JMeter는 인터페이스 테스트와 마찬가지로 현재 요청된 페이지만 다운로드하며 페이지의 다른 추가 리소스는 다운로드하지 않습니다. 이는 분명히 실제 상황과 일치하지 않습니다. 따라서 페이지의 모든 리소스를 다운로드해야 합니다. HTTP 샘플러의 "고급" 탭에서 "HTML 파일에서 포함된 모든 리소스 가져오기"를 선택하세요.
이 실행을 위해 우리는 여전히 이전 Java 스크립트와 동일한 시나리오 설계를 따릅니다. 즉, 사용자 50명, 10초마다 동시 사용자 5명, 각 사용자는 100번 실행됩니다. 구체적인 설정은 다음과 같습니다.
위 설정에서 "Ramp-Up Period(초)" 매개변수를 100초로 설정한다는 것은 2초마다 스레드를 추가한다는 의미입니다. 사용자 정의 스레드처럼 빈도를 임의로 정의할 수는 없지만 이러한 설정은 10초마다 동일합니다. 동시 사용자 5명의 효과에는 본질적인 차이가 없습니다.
실행 횟수 설정 외에도 성능 테스트 프로세스의 총 실행 시간도 설정할 수 있습니다. 위 사진 하단의 "Scheduler"를 체크하고 기간을 설정해주세요. 한 시간 동안 지속적으로 실행해야 하는 경우 해당 값을 3600초로 설정하기만 하면 됩니다.
인지 시간은 실제 사용자 시나리오를 시뮬레이션하는 데 필요한 설정입니다. JMeter에서 제공하는 "타이머" 구성 요소는 사용자의 사고 시간을 시뮬레이션하는 데 사용됩니다. JMeter에는 다양한 유형의 타이머가 함께 제공됩니다. 우리는 JMeter에서 타이머를 생성하기 위해 더 일반적으로 사용되는 "가우스 랜덤 타이머"를 사용할 수 있습니다. 샘플러는 인지 시간을 설정합니다.
(1) 샘플러를 마우스 오른쪽 버튼으로 클릭합니다. 예를 들어 "DoLogin"을 클릭하여 새로운 "가우스 랜덤 타이머"를 만듭니다.
(2) 오프셋을 2000밀리초로 설정하고 고정 지연 오프셋을 4000밀리초로 설정합니다. 그 기능은 4초 ± 2초 범위 내에서 난수를 생성하는 것입니다. 즉, 무작위 일시정지 시간은 2초에서 6초 사이입니다.
JMeter 타이머 사용법에 대한 추가 정보
랑데뷰 포인트의 개념은 성능 테스트 도구인 LoadRunner에서 처음 제안되었습니다. 그 기능은 스레드 그룹이 요청을 보낸 후 모든 스레드가 특정 시점에 동기화될 때까지 모두가 함께 모인 다음 함께 요청을 보내는 것입니다. 보다 엄격한 동시성 테스트를 시뮬레이션하는 데 사용됩니다. 랑데부 포인트의 사용은 실제 시나리오와 일치하지 않지만 서버에 더 큰 즉각적인 압력을 가할 수 있습니다. 주로 서버의 동시성 테스트에 사용됩니다.
JMeter에서는 "동기화 타이머" 타이머를 사용하여 랑데뷰 포인트 처리를 완료할 수 있습니다. 예를 들어, 다음 그림은 샘플러 "DoPost"에 대한 동시 테스트 전략을 구현하는 방법을 보여줍니다.
(1) 그룹화할 시뮬레이션된 사용자 수: 이 값은 컬렉션 지점의 스레드 수에 해당합니다. 여기서는 이를 50으로 설정했습니다. 이는 컬렉션이 다음 요청을 함께 보내기 전에 50개의 스레드를 기다려야 함을 의미합니다. 여기서 0으로 설정하면 스레드 그룹에서 설정한 모든 스레드를 모아서 사용한다는 뜻이다.
(2) 밀리초 단위의 시간 초과: 여기에서 10000으로 설정합니다. 이는 랑데부 지점의 시간 초과가 10초임을 의미합니다. 즉, 모든 스레드가 10초 동안 기다리지 않은 경우 더 이상 기다리지 않습니다. 수집을 완료한 스레드는 다음 요청을 직접 보냅니다.
실제로 Java의 기본 스레드 개발에서는 "wait()" 및 "notifyAll()" 두 가지 동기화 메서드를 사용하여 랑데부 지점 시뮬레이션을 완료할 수도 있습니다.
JMeter에는 테스트 보고서를 볼 수 있는 많은 내장 구성 요소가 있지만 가장 일반적으로 사용되는 구성 요소는 특정 스레드 그룹에 대해 생성된 "집계 보고서"입니다. 예를 들어 현재 Phpwind 성능 테스트의 결과는 다음과 같습니다.
위의 그림을 보면 각 샘플러의 실행 횟수, 응답 시간(평균, 중앙값, 90% 값, 최소값, 최대값), 트랜잭션 오류율, 네트워크 대역폭 Throughput, 전체 응답 크기, 전체에 대한 다양한 수학적 통계를 확인할 수 있습니다. 요청 크기 및 기타 데이터. 서버 측 성능 지표를 모니터링하는 것 외에도 기본적으로 이러한 지표는 성능 테스트를 위한 기본 데이터를 분석하는 데 충분합니다.
사고 운동
(1) JMeter의 다른 구성 요소 사용법을 숙지하십시오.
(2) JMeter를 사용하여 프로젝트의 성능 테스트를 완료하고 직면한 문제를 하나씩 해결합니다.
(3) JMeter의 성능 테스트와 네이티브 Java를 사용하여 자체 개발한 성능 테스트를 비교하여 유사점과 차이점을 확인합니다.
마지막으로 제 글을 꼼꼼히 읽어주시는 모든 분들께 감사의 인사를 전하고 싶습니다. 팬분들의 증가와 관심을 보면 항상 약간의 예의는 있습니다. 비록 아주 귀한 것은 아니지만, 직접 가져가셔도 됩니다!
우리는 고임금 직업을 찾기 위해 공부해야 합니다. 다음 인터뷰 질문은 Alibaba, Tencent, Byte 등 1급 인터넷 기업의 최신 인터뷰 자료이며 일부 Byte 상사는 이 세트를 마친 후 권위 있는 답변을 제공했습니다. 면접정보를 바탕으로 누구나 만족스러운 일자리를 찾을 수 있다고 믿습니다.