Download presentation
Presentation is loading. Please wait.
1
웹 성능 및 부하 테스트(Load Test)를 통한 소프트웨어 품질 향상방안
김태영(Taeyo) 부장, Technical Solution Professional / DPE Microsoft
2
1 2 3 4 부하 테스트를 해야 하는 이유 성능 테스트 부하 테스트 스트레스 테스트 수용능력 계획
애플리케이션 코드가 얼마나 빠르게 수행되는가 부하 테스트 계획한 사용자 부하에 대해 애플리케이션이 어떻게 대응하는가 스트레스 테스트 애플리케이션을 멈추게 하는 사용자 부하의 주요 원인은 무엇인가 수용능력 계획 기대 수용 범위까지 향후 애플리케이션이 확장될 수 있는가
3
부하 테스트의 필요성 시스템이 목표하는 성능을 낼 수 있는 지 사전 검증
부하에 의해 시스템에 발생 가능한 문제를 사전 발견 및 조치 서비스를 위해 필요한 장비/비용 산정(a.k.a. Capacity Planning) 향후 개발/서비스 운영 시에 판단 기준이 되는 수치를 수립 소프트웨어에 대한 품질 향상과 개발팀에 대한 신뢰성 부여
4
부하 테스트 계획 예시 : 목표 설정 서비스 오픈 후 5분 이내 20만 명의 사용자가 유입 예상
웹 페이지에서 최소 응답시간은 2초 이내를 보장해야 한다 개별 서비스에는 장애가 있더라도 플랫폼은 장애 없이 안정적인 서비스를 제공해야 한다 시스템의 확장성을 확보해야 한다
5
부하 테스트 계획 예시 : 목표 수치화/구체화 (1)
서비스 오픈 후 5분 이내 20만 명의 사용자가 유입 예상 5분 * 60초 = 300초 200,000 / 300 = TPS 웹 페이지에서 최소 응답시간은 2초 이내를 보장해야 한다 웹 서버 자체의 처리 속도 + Static 컨텐츠(이미지) 속도 + 플랫폼 API에 대한 호출/응답 속도 사용자 체감 응답속도 (2초 목표) 즉, 플랫폼 API는 500ms 이내의 응답속도를 보장해야 함
6
부하 테스트 계획 예시 : 목표 수치화/구체화 (2)
개별 서비스에는 장애가 있더라도 플랫폼은 장애 없이 안정적인 서비스를 제공해야 한다 Stress Test를 통해 응답 속도가 지연되거나 타임아웃이 발생하더라도 Crash는 일어나지 않아야 한다. 불가피하게 Crash가 되더라도 Fail-Over가 정상적으로 수행되는지, Fail-Over 상황에서의 성능 수치도 확인한다 시스템의 확장성을 확보해야 한다 장비 수, 인스턴스 수, 설정 등에 대해 다양한 경우의 수를 조합하여 Comparison Test를 수행하여 성능을 비교한다
7
다양한 부하 테스트 도구 부하 테스트를 위한 도구 HP LoadRunner Visual Studio Load Test
JMeter ApacheBenchmark Grinder httperf
8
Why Visual Studio Load Test?
친숙한 Visual Studio IDE .NET 기반 테스트 코드 별도의 언어나 스크립트를 배울 필요가 없음 다양한 테스트 유형 지원 단위 테스트, 웹 테스트, UI 테스트 등… .NET 코드로 만들 수 있는 테스트는 모두 가능 필요한 기능은 거의 다 있음 상대적으로 저렴한 비용 무제한 VU (타 제품은 500 VU 당 $55,000)
9
웹 성능 테스트/부하 테스트 쉽게 테스트 시나리오를 작성하고, 서버에 대한 모니터링 대상 카운터를 설정
Visual Studio 11 4/9/2019 웹 성능 테스트/부하 테스트 쉽게 테스트 시나리오를 작성하고, 서버에 대한 모니터링 대상 카운터를 설정 Application, ASP.NET, .NET Application, IIS, SQL 등을 모니터 가능 결과는 텍스트 혹은 그래픽으로 보여줌 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
10
부하 테스트 : 스샷 모음 Visual Studio 11 4/9/2019
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
11
4/9/2019 demo : 부하 테스트 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
12
Visual Studio Load Test 구성요소/아키텍처
13
Visual Studio Load Test 구성요소/아키텍처
부하 테스트 작성 테스터를 위한 UI 제공 Control Test Agent를 제어한다 부하 테스트 데이터/성능 카운터를 수집한다 테스트 결과 저장소 VS Ultimate VS Test Controller (QTController.exe) SQL Server Local Controller Local Agent VS Test Agent (QTAgent.exe) VS Test Agent (QTAgent.exe) VS Test Agent (QTAgent.exe) 실제 부하를 생성 테스트 결과와 데이터를 컨트롤러로 전송
14
Controller, Agent 하드웨어 기본 사양
VS Test Controller 하드웨어 기본 사양 구성 CPU HD 메모리 30대 이하의 컴퓨터로 구성된 환경 (테스트 대상 서버와 Agent를 포함) 2.6 GHz - 30대 컴퓨터 x N 으로 구성된 환경 2.6 GHz, N 개 VS Test Agent 하드웨어 기본 사양 구성 CPU HD 메모리 500 이하의 가상 사용자 2.6 GHz 10 GB 2 GB 1000 이하의 가상 사용자 Dual processor 2.6 GHz N x 1000 가상 사용자 Dual 2.6 Ghz를 갖는 N 개의 Agent로 스케일 아웃 10GB 2GB
15
하지만, 부하 테스트 환경 구성은 간단하지 않다 부하 테스트는 예상보다 환경 구성에 비용이 많이 든다 프로비저닝이 복잡하다
인프라에 대한 예산 책정 및 구입 부하 테스트는 예상보다 환경 구성에 비용이 많이 든다 프로비저닝이 복잡하다 확장성을 확보하기가 쉽지 않다 유지 보수에 비용이 많이 든다 필요한 소프트웨어 및 에이전트 설치 물리적인 환경 구성 모든 컴퓨터에 반복적으로 작업
16
1 2 3 4 해법은 클라우드 부하 테스트 자체 인프라를 준비 및 구성하거나 유지보수 할 필요가 없다
필요할 때 언제든지 클라우드에서 인프라를 갖출 수 있다 온 프레미스에서 사용하는 부하 테스트 프로젝트를 그대로 이용할 수 있다 스트레스 테스트를 수행할 경우 등에 대비하여 쉽게 확장할 수 있다
17
클라우드 기반의 부하 테스트 비싼 인프라를 없이도 부하 테스트를 실행 원하는 만큼 많은 사용자로 부하 테스트 규모 확장
4/9/2019 클라우드 기반의 부하 테스트 테스트 인프라를 별도로 준비하지 않아도 되기에 더욱 효율적으로 응용프로그램을 구축할 수 있다 비싼 인프라를 없이도 부하 테스트를 실행 현실적인 부하 테스트를 만들기 위해서 다양한 성능 시나리오를 혼합하고 매치시킬 수 있다 원하는 만큼 많은 사용자로 부하 테스트 규모 확장 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
18
단 2개의 설정으로 준비 완료 1) VSO 쓰겠다고 설정 2) 부하 인원 설정
19
클라우드 부하 테스트 실행
20
Visual Studio Online Team Foundation Server Visual Studio Online
4/9/2019 Visual Studio Online Build service | Load testing service | Continuous deployment to Azure | Application insights | Code editing Lab management | Release management | Load testing | SharePoint | Project Server | System Center 소스 제어 애자일 계획 팀 룸 테스트 케이스 관리 피드백 관리 빌드 및 지속적인 통합 Team Foundation Server Visual Studio Online © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
21
Application insights Available Performing Succeeding 사용현황 대시보드 진단 대시보드
사용자의 사용 패턴과 가장 많이 쓰는 기능들 파악. 차기에 투자해야 할 요소를 예측 사용현황 대시보드 단일 대시보드를 통한 애플리케이션의 성능, 사용 현황 파악 진단 대시보드 통지 및 상세 분석 무엇인 문제인지 파악 의심되는 코드 및 테스트를 통지해준다
22
Application Insight를 통한 서버의 가용성 및 성능 분석
23
클라우드 부하 테스트 사용 조건 Visual Studio Ultimate 및 VSO 계정이 있어야 함
부하 대상 응용 프로그램은 인터넷을 통해 접근할 수 있어야 한다 15,000 사용자-분(min)은 매월 무료로 사용 가능함 관련 모든 정보는 참고
24
참고 부하 테스트 http://msdn.microsoft.com/ko-kr/library/dn250793.aspx
부하 테스트 클라우드 부하 테스트 Microsoft ALM Korea로 검색
Similar presentations