성능 테스트: 로드 테스트 방법
목적
이 문서의 목적은 부하 테스트를 설계하고 실행하는 데 도움이 되는 것입니다.
왜 배우나요?
개발자로서 우리는 이미 기초 지식을 가지고 있으며 약간의 노력으로 우리의 기술을 확장할 수 있습니다.
- 귀사는 성능 엔지니어를 고용할 여력이 없습니다.
- 개발자에 비해 테스터가 충분하지 않음
- 기술과 지식은 더 우수하고 확장 가능한 코드를 작성하는 데 도움이 될 수 있습니다.
- 다른 사람의 전문성에 덜 의존
부하 테스트를 하는 이유
단위 및 통합 테스트는 코드가 기능적으로 올바른지 확인하지만 로드 테스트는 똑같이 중요한 성능을 측정합니다.
데이터베이스 쿼리가 전체 테이블 스캔 대신 인덱스를 잘 사용하는지 여부, 병목 현상이 있는 위치, 애플리케이션이 효율적으로 확장되는지, 애플리케이션의 응답 시간 및 처리량 등은 부하 테스트만이 동시성 문제를 밝힐 수 있습니다.
시작하기 Apache JMeter
이 섹션에서는 Apache JMeter 부하 테스트를 설계하고 실행할 것입니다.
환경 설정
환경의 경우 적절한 온라인 리소스(권장하지 않음)를 찾거나 자신만의 간단한 서비스(노드, 파이썬 등)를 고안하거나 이 기사에서 제공하는 웹 서비스를 사용하십시오.
4개의 엔드포인트를 노출하는 간단한 자바 기반 스프링 부트 웹 서비스를 사용할 것입니다. 요구 사항은 Java 1.8 및 Apache Maven입니다.
Add > Threads (Users) > Thread Group
아파치 JMeter
다운로드 사이트에서 Apache JMeter를 설치하고 압축을 풀고 다음 명령을 실행하십시오.
Number of Threads (users)
Apache JMeter에 대한 테스트 계획 설계
다음 API를 로드 테스트해 보겠습니다.
Ramp-Up period (in seconds)
위 끝점에 대한 모든 샘플 테스트는 GitHub 리포지토리에서 사용할 수 있습니다.
1 단계
테스트 계획을 마우스 오른쪽 버튼으로 클릭하고 |_+_|를 선택합니다. 테스트 계획에는 적어도 1개의 스레드 그룹이 있어야 합니다.
- |_+_|
- |_+_|. 최대 사용자에게 도달하는 데 얼마나 걸립니까?
- 테스트를 실행하는 횟수 또는 기간
2 단계
테스트할 대상을 지정해 보겠습니다. 오른쪽 클릭 |_+_| 선택 |_+_| 옵션.
구성 요소 예를 들어 서버 주소, 포트 번호, 토큰 등과 같은 하나 이상의 요청 간에 구성을 공유하려는 경우에 유용합니다.
HTTP 요청 기본값 구성 요소를 작성해 보겠습니다.
또한 |_+_| 통해 |_+_| |_+_| 헤더
3단계
http 요청을 구성해 보겠습니다. |__+_| 선택 |_+_|
- 메소드 유형은 무엇입니까?|_+_| 또는 |_+_| 등
- API 경로는 무엇입니까? |_+_| 또는 |_+_| 등
마우스 오른쪽 버튼을 클릭하여 |_+_| 요청하고 업데이트하십시오.
4단계
|_+_| 결과를 수집하는 데 사용됩니다. 오른쪽 클릭 |_+_| 선택 |_+_| 옵션.
단어로 테스트 계획, 우리는 |_+_| |_+_|두 개의 API로 |_+_| |_+_| 기간 동안 증가합니다.
rvn을 구입하는 방법
|_+_| (또는 자신의) 실행 중인 다음 재생 버튼을 누르고 |_+_|에서 결과를 확인합니다.
CLI를 사용하여 Apache JMeter 테스트 실행
GUI는 복잡한 테스트를 실행하는 데 권장되지 않습니다. 다음에서 복잡한 샘플 테스트를 열어 보겠습니다. 여기 .
위의 테스트 계획에는 더 많은 요소가 있습니다.
- |_+_| x와 y 사이의 값을 생성
- |_+_| 루프의 내용을 x 번 실행합니다.
의미 있는 보고서를 생성하려면 |_+_| (소스) 디렉토리의 |_+_| 테스트는.
ThreadGroup
명령을 사용하여 테스트 스크립트를 실행합니다(출력 디렉터리는 비어 있어야 함).
Add > Config Elements > HTTP Request Defaults
위의 명령에서 |_+_| |_+_|를 나타냅니다. |_+_| 스크립트를 나타냅니다 |_+_| |_+_| |_+_|를 위한 것입니다 어디 |_+_| 그리고 |_+_| 보고용입니다.
myol.com 메일 로그인
|_+_| 아래에 표시된 대로 테스트의 그래픽 결과를 여는 |_+_|을(를) 포함하는 많은 파일이 포함됩니다.
이 그래프에서 왼쪽은 APDEX이고 오른쪽은 요청 요약입니다. 빨간색은 모든 404 오류를 나타내고 녹색은 200개의 성공적인 요청을 나타냅니다.
|_+_|와 관련된 일부 숫자
가장 중요한 것은 |_+_| 그리고 |_+_|
마지막으로 |_+_| 브라우저의 활동을 수신하고 네트워크 요청을 캡처하도록 구성할 수 있습니다.
황소자리 시작하기
이제 사용법을 알았으니 |_+_| 기본 부하 테스트를 실행하기 위해 오픈 소스 프레임워크인 Taurus를 살펴보겠습니다. 한마디로 황소자리가 태어난 이유 중 하나는 |_+_| 학습 곡선이 가파르고 |_+_|일이 훨씬 간단해집니다.
Taurus는 Apache JMeter 위에 있는 추상화 계층(또는 래퍼)이며 Taurus를 사용하여 Apache JMeter 스크립트를 실행할 수 있음을 의미합니다. 따라서 설치하기 쉬운 지침을 사용하여 황소 자리를 설치하십시오.
|_+_| 스크립트는 |_+_|로 작성할 수 있습니다. 또는 |_+_| 팔로우 블록 사용
|_+_| 기본적으로 하나 이상의 요청이 정의되는 곳입니다. 각 |_+_| |_+_| |_+_|, |_+_|, |_+_|와 같은 소품으로 정의됩니다. 등등. |_+_| 구성할 수 있도록 허용 |_+_| |_+_|, |_+_| 등등. 마찬가지로 |_+_| 보고서 생성 방법을 구성할 수 있습니다. 즉, csv, 콘솔의 실시간 보고 또는 결과를 blazemeter 웹사이트에 푸시합니다.
HTTP Header Manager
부하 테스트 |_+_| API 도달 |_+_| |_+_| 내의 사용자 (램프 업) |_+_| 디스플레이 |_+_| 콘솔 뿐만 아니라 |_+_| 파일.
황소 자리 테스트를 실행하려면 bzt |_+_| 명령을 실행하기만 하면 됩니다.
|_+_| 테스트에서 |__+_|를 가리키도록 시나리오를 구성할 수도 있습니다. 스크립트를 작성하고 실행 및 기타 매개변수를 재정의합니다.
Add > Config Elements > HTTP Header Manager
|_+_| 매우 흥미로운 프레임워크인 것 같으며 확인해 볼 가치가 있습니다. 여기에 매우 잘 설명되어 있습니다.
결론
더 많은 기술과 트릭을 배우고 싶다면 Apache JMeter 및 Taurus 문서를 확인하는 것이 좋습니다.
감사합니다. 계속 방문하세요. 이 게시물이 마음에 들면 모든 프로그래밍 친구와 공유하십시오!
☞ PWA 및 Vue를 사용한 최신 웹 앱 성능 트릭
☞ 비동기 구성 요소로 Vue 앱의 성능 최적화
#자바 #테스트 #웹 개발