ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 성능 테스트 개론
    카테고리 없음 2023. 4. 10. 13:51

    시스템 성능 검증 테스트는 검증 범위에 따라 단위, 통합, 임계, 장시간 테스트로 구분된다.

    • 단위 성능테스트

    테스트 대상 단위 업무에 대한 성능 목표치를 달성할 수 있는지 여부를 검증하기 위해 수행한다.

    스트레스 테스트 형태로 진행되며, 측정된 최대 업무량(throughput)과 단위 성능테스트 목표와 비교해 목표 미달일 경우 튜닝 테스트 대상이 된다. 설사 목표 달성을 하지 못하더라도 오래 매달리지 않는다.

    • 통합 성능테스트

    테스트 대상 전체 업무들에 대한 성능 목표치를 달성할 수 있는지 여부를 검증하기 위해 수행한다. 본 테스트를 통해 구축된 시스템에 대한 최종 성능을 검증한다. 총체적인 관점에서 접근한다.

    • 임계 성능테스트

    테스트 대상 시스템이 SAL(Service Level Agreement) 를 만족하는 수준에서 최대로 처리할 수 있는 임계 성능을 산출하기 위해 수행한다.

    • 장시간 테스트

    시스템 운영 중에 발생 가능한 메모리 누수나 예기치 못한 오류들을 사전에 검증하기 위해 수행된다. 운영상환을 시뮬레이션 하기 위해 통합 성능테스트 부하 모델이 약 70%에 해당하는 환경을 기준으로 24시간 수행한다.

    통합테스트에서 업무량 뿐만 아니라 응답시간, 시스템 사용률에 대한 목표 달성 여부가 중요하다.

     

    • throughput : 업무량

    단위 테스트에서는 최대 업무량을 확인. 단위 업무가 단독으로 수행된다는 가정하에 정의되어, 현행 시스템에서 측정된 실제 업무량보다 훨씬 크게 설정되어야함.

    • Response time

    업무량(throughput) 은 시스템 측면에서의 성능 목표라면, 사용자 측면에서는 응답시간이 성능 목표 기준이 된다.

    응답시간은 통계학에서 사용되는 대표 값 유형에 따라 평균, 중앙값, 백분위수 등으로 표시될 수 있다.

    가장 많이 사용되는 형태는 평균, 백분위수이며, 최근은 이상치(outlier) 에 따른 응답시간 편차가 큰 경우를 대비해 가급적 90백분위수를 권장한다.

     

    성능테스트 프로세스

     

    1. 성능테스트 계획 단계 :

    테스트 관련 요구사항 수집, 테스트 대상 시스템에 대한 부하량 분석, 테스트 계획 수립 등의 태스크로 구성

    • 요구사항 수집 단계 : 프로젝트 분석 단계에서 정의된 비 기능 요구사항을 기준으로 테스트 점위, 테스트 목표에 대한 상위 레벨 기대치를 수립.
    • 부하량 분석 단계 : 테스트 대상 업무, 업무량, 동시 사용자 호출 수, 호출 간격 등을 포함하는 부하량 프로파일workload profile 정의를 위해 테스트 대상 시스템 또는 레거시 시스템에 대한 대한 사용자가 가장 많이 몰리는 피크일자의 부하량을 분석한다.
    • 성능테스트 계획 수립 단계 : 테스트 목적, 테스트 범위, 테스트 목표, 테스트 대상 업무, 테스트 일정, 테스트 조직, 테스트 프로세스, 시작/종료 조건에 대한 정보를 기반으로 테스트 계획 문서 작성 - 여러 이해 관계자들의 지원을 필요로 해, 설명회를 통해 공유

    2. 성능테스트 설계/구현 단계 : 테스트 대상이 되는 업무들에 대한 테스트 스크립트 설계, 테스트 데이터 준비, 테스트 시나리오 설계 등의 태스크로 구성되어 있다. 태스트 스크립트 설계 단계에서는 테스트 대상 업무를 위한 테스트 스크립트가 생성되는데, 일반적으로 테스트 대상 업무별로 별도로 작성하는 것을 원칙으로 함

    • 테스트 데이터 준비 단계 : 테스트 대상 업무에서 필요로 하는 볼륨 데이터 준비, 원칙적으로 레거시 시스템에서 추출한 데이터를 사용한다. 추출된 데이터 볼륨이 부족하거나 없을 경우, 테스트 데이터를 별도로 생성한다. 하지만 인위적으로 생성된 테스트 데이터는 실제 상황에서 발생하는 다양한 조건을 만족할 수 없기 때문에, 테스트 결과에 대한 신뢰도를 낮출 수 있음을 유념한다
    • 테스트 시나리오 설계 단계 : 부하량 분석 단계에서 정의된 부하량 프로파일을 기반으로 성능 테스트 솔루션에 시나리오를 생성하게 된다. 성능 테스트 자동화 솔루션에는 실제 상황과 유사하게 부하를 생성하는 여러 기능(가상 사용자, 호출 간격, 대기 시간) 들을 제공해, 이 개념들에 대한 이해가 필요하다.
    • 부하량 분석 단계에서 정의된 부하량 프로파일을 기반으로 성능 테스트 솔루션에서 시나리오를 설계하게 된다.
    • 또 다른 중요한 포인트는, 시나리오 패턴이다. 일반적으로 테스트 대상 시스템에 워밍업 없이 급격한 부하를 가하게 되면, 요청 업무를 정상적으로 처리 하지 못하는 문제가 발생할 수 있다.

    성능 솔루션에서 이러한 문제를 극복하기 위해 세가지 부하 구간을 제공해 실제 상황과 유사한 형태의 부하 생성을 가능하게 한다.

    여기서 첫번째 부하 구간은 부하 증가(ramp up) 구간으로써 지정된 시간마다 지정된 사용자가 점진적으로 증가하는 형태를 띄게 하여, 시스템이 워밍업할 수 있게 한다.

    두번째 부하구간은, 부하 유지 구간으로 사용자가 더 이상 증가하지 않고 동일 부하가 그대로 유지된다. 실제 테스트 결과를 측정하는 구간이기 때문에 각 테스트 유형별로 충분한 시간(통합성능테스트 1시간)을 가지게 정의한다.

    마지막 부하 구간은 부하 감소(ramp down) 구간으로써 지정된 시간마다 지정된 사용자가 점진적으로 감소하는 형태를 띠게 해 부하량을 감소시킨다.

     

    3. 테스트 수행단계 : 테스트 계획 상 나와있는 각 테스트 유형 별 접근 방안을 갖고 테스트를 진행하게 되는데, 테스트 수행 결과가 테스트 목표를 달성할 때까지 성능 튜닝과 병행하여 반복 수행하게 된다.

     

    4. 성능 튜닝 단계 : 테스트 수행 결과가 테스트 목표에 도달하지 못할 경우, 병목을 야기하는 근본 원인을 분석하고 제거하는 활동을 진행해야 하는데, 시스템 아키텍처가 복잡하고 대형화 될 수록 튜닝 담당 전문 인력을 반드시 필요로 한다.

     

    5. 테스트 결과 정리 단계 : 테스트 계획상의 각 테스트 유형 별 목표와 측정 결과를 비교 분석하여 테스트 결과를 정리하게 된다. 이때 테스트와 관련된 상세 현황(테스트 조건, 테스트 상세 결과 파일, 시스템 현황 정보, 시스템 구성 내역)에 대한 정리도 반드시 필요하다.

     

    https://cdn.jennifersoft.com/wp-content/uploads/Documents/ko/JENNIFER_White_Paper-성능테스트개론.pdf

    http://ngrinder.373.s1.nabble.com/ramp-up-td355.html#a356

     

    ngrinder-user-kr - 잘 쓰고 있습니다. 감사합니다.+ramp-up힌트

    좋은 피드백 감사드립니다. ^^ 말씀 하신데로 해당 램프업은 sleep 을 주고 단계적으로 늦게 구동되는 방식인데요. 프로세스 램프업와 혼용해서 쓰시면 몇개의 쓰레드가 활성화 될때부터 성능 저

    ngrinder.373.s1.nabble.com

    https://www.whatap.io/ko/blog/14/

     

    TPS 지표 이해하기 | 와탭 블로그

    합리적으로 인프라를 사용하고 있는지 시스템의 성능 지표를 확인하고 싶다면 지금이 TPS 지표를 봐야할 때입니다.

    www.whatap.io

     

    https://giron.tistory.com/83

     

    ngrinder 성능테스트 [서버 부하 테스트]

    🎐성능 테스트 목표🎐 성능 테스트 전략 수립 단계 중 가장 핵심은 바로 서비스할 소프트웨어에 대한 명확한 목표를 수립하는 것이다. 이 목표를 달성하기 위해 성능 테스트와 부하 테스트를

    giron.tistory.com

    https://blog.naver.com/PostView.naver?blogId=ysulshin&logNo=220930221502&parentCategoryNo=&categoryNo=41&viewDate=&isShowPopularPosts=true&from=search 

     

    ngrinder 시작하기

    ngrinder는 jmeter처럼 성능 테스트할때 쓰는 툴. jemeter보다 이쁘고 report보기도 편한것같음! 찾아보니 ...

    blog.naver.com

     

    반응형
Designed by Tistory.