소프트웨어 로드 테스트
Software load testing부하 테스트라는 용어는 전문 소프트웨어 테스트 커뮤니티에서 다양한 방식으로 사용됩니다.로드 테스트는 일반적으로 여러 사용자가 [1]동시에 프로그램에 액세스하는 것을 시뮬레이션하여 소프트웨어 프로그램의 예상 사용량을 모델링하는 작업을 말합니다.이와 같이 이 테스트는 다중 사용자 시스템과 가장 관련이 있습니다. 웹 서버와 같은 클라이언트/서버 모델을 사용하여 구축된 시스템입니다.그러나 다른 유형의 소프트웨어 시스템도 로드 테스트할 수 있습니다.예를 들어 워드 프로세서나 그래픽 편집기가 매우 큰 문서를 읽도록 강제하거나 재무 패키지가 수년간의 데이터를 기반으로 보고서를 생성하도록 강제할 수 있습니다.가장 정확한 부하 테스트는 이론적 또는 분석적 모델링을 사용한 테스트가 아니라 실제 사용을 시뮬레이션합니다.
로드 테스트를 통해 실제 고객 행동을 기반으로 웹 사이트의 QOS(서비스 품질) 성능을 측정할 수 있습니다.거의 모든 부하 테스트 도구와 프레임워크는 고전적인 부하 테스트 패러다임을 따릅니다. 고객이 웹 사이트를 방문하면 스크립트 레코더가 통신을 기록한 다음 관련 상호 작용 스크립트를 만듭니다.로드 생성기는 기록된 스크립트를 재생하려고 합니다. 재생하기 전에 다른 테스트 매개 변수로 수정할 수 있습니다.재생 절차에서 하드웨어 및 소프트웨어 통계는 모두 컨덕터에 의해 모니터링되고 수집됩니다. 이러한 통계에는 물리적 서버의 CPU, 메모리, 디스크 IO 및 응답 시간, 테스트 대상 시스템의 처리량(SUT) 등이 포함됩니다.그리고 마지막으로, 이러한 모든 통계가 분석되고 부하 테스트 보고서가 생성됩니다.
로드 및 성능 테스트는 여러 사용자를 대상으로 하는 소프트웨어를 분석하여 여러 가상 사용자와 실제 사용자에게 소프트웨어를 제공하는 동시에 이러한 서로 다른 로드에서 성능 측정을 모니터링합니다.로드 및 성능 테스트는 일반적으로 소프트웨어 시스템이 활성화되기 전에 프로덕션 환경과 동일한 테스트 환경에서 수행됩니다.
예를 들어, 쇼핑 카트 기능이 있는 웹 사이트는 다음 활동으로 분류된 100명의 동시 사용자를 지원해야 합니다.
- 25명의 가상 사용자(VUSers)가 로그인하고 항목을 탐색한 다음 로그오프
- 25명의 VU 사용자가 로그인하여 장바구니에 항목을 추가하고 체크아웃한 다음 로그오프합니다.
- 25 VU 사용자가 로그인하여 이전에 구입한 항목을 반환한 후 로그오프
- 25명의 VU 사용자가 후속 작업 없이 로그인만 함
테스트 분석가는 다양한 부하 테스트 도구를 사용하여 이러한 VU 사용자와 사용자의 활동을 생성할 수 있습니다.테스트가 시작되고 정상 상태에 도달하면 위에서 설명한 대로 애플리케이션이 100 VUser 로드에서 테스트됩니다.그러면 애플리케이션의 성능을 모니터링하고 캡처할 수 있습니다.
부하 테스트 계획 또는 스크립트의 세부 사항은 일반적으로 조직마다 다릅니다.예를 들어, 위의 글머리 기호 목록에서 첫 번째 항목은 개발된 테스트 계획 또는 스크립트에 따라 고유 항목, 임의 항목 또는 선택한 항목 집합을 검색하는 25명의 VU 사용자를 나타낼 수 있습니다.그러나 모든 로드 테스트 계획은 예상되는 피크 워크플로우 및 볼륨 범위에서 시스템 성능을 시뮬레이션하려고 시도합니다.부하 테스트에 합격하거나 불합격하는 기준(합격/불합격 기준)은 일반적으로 조직마다 다릅니다.허용 가능한 부하 테스트 성능 메트릭을 지정하는 표준이 없습니다.
로드 테스트 소프트웨어는 회귀 테스트 도구와 같은 기록 및 재생 기능을 제공한다는 것이 일반적인 오해입니다.로드 테스트 도구는 전체 OSI 프로토콜 스택을 분석하는 반면 대부분의 회귀 테스트 도구는 GUI 성능에 중점을 둡니다.예를 들어 회귀 테스트 도구는 웹 브라우저의 단추를 클릭하여 마우스 클릭을 기록하고 재생하지만 로드 테스트 도구는 사용자가 단추를 클릭한 후 웹 브라우저가 보내는 하이퍼텍스트를 전송합니다.다중 사용자 환경에서 로드 테스트 도구는 각 사용자가 고유한 로그인 ID, 암호 등을 사용하여 여러 사용자에게 하이퍼텍스트를 전송할 수 있습니다.
사용 가능한 일반적인 로드 테스트 도구는 성능 저하의 원인에 대한 통찰력도 제공합니다.시스템 성능 저하에는 다음과 같은 여러 가지 원인이 있을 수 있습니다.
로드 테스트는 애플리케이션, 시스템 또는 서비스가 서비스 수준 계약 또는 SLA의 적용을 받을 경우 특히 중요합니다.
부하 테스트는 정상 및 예상 최대 부하 조건 모두에서 시스템의 동작을 확인하기 위해 수행됩니다.애플리케이션의 최대 작동 용량과 병목 현상을 식별하고 성능 저하를 일으키는 요소를 파악하는 데 도움이 됩니다.비정상적으로 높은 부하 또는 최대 부하에서 시스템의 응답을 테스트하기 위해 시스템에 가해지는 부하가 정상적인 사용 패턴을 초과하여 증가하는 경우를 스트레스 테스트라고 합니다.일반적으로 부하가 너무 커서 오류 조건이 예상되는 결과이지만, 활동이 부하 테스트를 중단하고 스트레스 테스트가 될 때에는 명확한 경계가 없습니다.
"부하 테스트"라는 용어는 종종 특정 시나리오에 대한 동시성 테스트, 소프트웨어 성능 테스트, 신뢰성 테스트 및 볼륨 테스트와 동의어로 사용됩니다.이들은 모두 특정 소프트웨어의 사용 적합성을 검증하는 데 사용되는 기능 테스트의 일부가 아닌 비기능 테스트 유형입니다.
부하 테스트 중인 사용자 환경
위의 예에서는 테스트 대상 디바이스(DUT)가 프로덕션 로드(VUser 100개)에 있는 동안 대상 애플리케이션을 실행합니다.여기서 대상 응용 프로그램의 성능은 부하 시 사용자 환경입니다.DUT가 얼마나 빨리 또는 느리게 반응하는지, 얼마나 만족하는지 또는 사용자가 실제로 성능을 어떻게 인식하는지 설명합니다.
브라우저 레벨과 프로토콜 레벨 사용자 비교
지금까지 모든 로드 테스트는 프로토콜 계층(종종 프로토콜 레벨 사용자 또는 PLU라고 함)에서 동시 상호 작용을 통해 트래픽을 시뮬레이션하는 자동화된 API 테스트를 통해 수행되었습니다.컨테이너 및 클라우드 인프라의 발전으로, 이제 실제 브라우저(브라우저 레벨 사용자 또는 [2]BLU라고 함)로 테스트할 수 있는 옵션이 제공됩니다.각 접근 방식은 서로 다른 유형의 응용 프로그램에 대한 장점이 있지만 일반적으로 브라우저 수준의 사용자는 웹 사이트가 경험하게 될 실제 트래픽과 더 유사하며 보다 현실적인 로드 프로파일 및 응답 시간 [3]측정을 제공합니다.BLU는 확실히 테스트를 실행하는 데 더 많은 비용이 소요되며 모든 유형의 애플리케이션, 특히 데스크톱 클라이언트나 API 기반 [4]애플리케이션과 같은 웹 브라우저를 통해 액세스할 수 없는 애플리케이션과 함께 작동할 수 없습니다.
부하 테스트 도구
| 공구명 | 회사명 | 면허증. | 유형 | 가격 책정 | 초점 | 메모들 |
|---|---|---|---|---|---|---|
| 아파치 JMeter | 아파치 소프트웨어 재단 | Apache 라이센스 2.0 | 현지의 | 공짜 | 부하 테스트 및 성능 측정을 위한 Java 데스크톱 응용 프로그램입니다. | |
| 블레이즈 미터 | 퍼포스 소프트웨어 | 소유권 | 클라우드 기반 | 무료 버전, 데모, 유료 요금제, 가격 문의 | 웹 사이트, 웹 앱, 모바일, 데이터베이스 및 기타 시나리오 | 8개 지역에서 최대 200,000명의 동시 시뮬레이션 브라우저 사용자를 로드할 수 있습니다.통합 및 기능 테스트에도 사용할 수 있습니다. |
| 블리츠 (2018년에 중단됨) | Spirent Communications | 소유권 | 클라우드 기반 | 평가판 사용 가능 | 웹사이트, 모바일 및 REST API | 이를 통해 전 세계 여러 위치에서 최대 50,000명의 가상 사용자를 동시에 시뮬레이션할 수 있습니다. |
| 홍수. | 트리센티스 APAC Pty Ltd. | 소유권 | 클라우드 기반 | 무료 요금제, 유료 요금제, 가격 문의 | 브라우저 기반 로드 테스트, API 및 프로토콜 기반 애플리케이션 | AWS 및 Azure에서 사용할 수 있는 모든 지리적 지역의 최대 수백만 명의 동시 사용자와 사내 구축 환경에서 확장 가능한 로드.가격은 [5][6]매월 소비되는 가상 사용자 시간을 기준으로 합니다. |
| 개틀링 | 개틀링 주식회사 | Apache 라이센스 2.0 | 로컬, 클라우드 기반 | 무료 버전, 데모, 유료 요금제, 가격 문의 | Java 웹 응용 프로그램 | 휴대용 HTML 보고서. |
| 해머DB | GPLv3 | 현지의 | 공짜 | 데이터베이스 | 데이터베이스 로드 테스트 및 벤치마킹 도구. | |
| Loader.io | SendGrid, Inc | 소유권 | 클라우드 기반 | 무료 요금제, 유료 요금제, 가격 문의 | 웹 애플리케이션 및 API | |
| 로드러너 | 마이크로 포커스 | 소유권 | 로컬, 클라우드 기반 | 무료 커뮤니티 에디션, 기타: 데모, 무료 평가판, 가격 문의 | 주로 다수의 테스트(또는 다수의 가상 사용자)를 동시에 실행하는 데 사용됩니다.유닛 및 통합 테스트에도 사용할 수 있습니다. | |
| Load UI(지금 Ready에 통합됨)API) | SmartBear 소프트웨어 | EUPL | 현지의 | 데모 사용 가능 | 주로 웹 서비스를 대상으로 하는 교차 플랫폼 로드 테스트 도구입니다.비누와 통합됩니다.UI. | |
| VSI 로그인 | VSI, Inc.에 로그인합니다. | 소유권 | 현지의 | 데모, 가격 문의 | 가상 윈도우즈 데스크톱 워크로드 | |
| 네오로드 | 네오티스 | 소유권 | 로컬, 클라우드 기반 | 무료 평가판, 데모, 가격 문의 | 웹 및 모바일 | 로컬 에이전트 또는 클라우드에서 로드를 생성할 수 있습니다. |
| OpenSTA | 시라노 | GNU 일반 공중 사용 허가서 2.0 | 현지의 | 공짜 | 웹 서버 | CORBA 기반의 분산 소프트웨어 아키텍처를 활용합니다.Windows에 사용할 수 있는 OpenSTA 이진 파일입니다. |
| 파라소프트 SOA 테스트 | 파라소프트 | 소유권 | 로컬, 클라우드 기반 | 데모, 가격 문의 | 부하 시 기능 및 성능을 검증하는 성능 테스트 도구.SOA 테스트 테스트, Junit, 경량 소켓 기반 구성요소를 지원합니다.동시성 문제를 탐지합니다. | |
| 합리적인 성능 테스터 | IBM | 소유권 | 로컬, 클라우드 기반 | 가격 문의 | Eclipse 기반의 대규모 성능 테스트 도구는 주로 서버 기반 애플리케이션의 시스템 응답 시간을 측정하기 위해 대용량 성능 테스트를 실행하는 데 사용됩니다. | |
| 공성전 | 오픈 소스 | GPLv3 이상 | 현지의 | 공짜 | 웹 서버 | 기본 인증, 쿠키, HTTP, HTTPS 및 FTP 프로토콜을 지원합니다. |
| 실크 퍼포머 | 마이크로 포커스 | 소유권 | 로컬, 클라우드 기반 | 무료 평가판, 가격 문의 | 클라우드 및 로컬 가상 에이전트가 포함된 애플리케이션 성능 도구입니다.대부분의 프로토콜 및 응용프로그램을 지원합니다.허가를 받았습니다. | |
| SoapUI | SmartBear 소프트웨어 | EUPL 버전 1.1 | 현지의 | 공짜 | ||
| 테스트 스튜디오 | 프로그레스 텔레릭 | 소유권 | 현지의 | 무료 평가판, 데모, 유료 플랜 | 동시에 많은 사용자가 방문할 경우 웹 사이트의 성능을 평가합니다. | |
| 종 | 오픈 소스 | GPL-2.0 | 현지의 | 공짜 | 웹 서버, 데이터베이스, XMPP | HTTP, WebDAV, SOAP, Postgre를 강조하는 데 사용할 수 있습니다.SQL, MySQL, LDAP, MQTT 및 Jabber/XMPP 서버. |
| Visual Studio Enterprise 버전(Visual Studio 2019 이후 사용되지 않음) | 마이크로소프트 | 소유권 | 현지의 | 유료 요금제 | Visual Studio Enterprise 버전에는 개발자가 다양한 테스트(웹, 장치 등)를 실행하여 실제 사용자 [7]로드를 시뮬레이션할 수 있는 로드 테스트 도구가 포함되어 있습니다.Microsoft는[when?] Visual Studio 2019 이후 웹 성능 및 로드 테스트 기능이 더 이상 사용되지 않는다고 발표했습니다. | |
| 베지터 | MIT 라이선스 | 현지의 | 공짜 | HTTP 응용 프로그램 | ||
| 웹로드 | 래드뷰 소프트웨어 | 소유권 | 로컬, 클라우드 기반 | 무료 평가판, 데모, 가격 문의 | 웹 및 모바일 애플리케이션 및 API | 성능 테스트 분석을 위한 웹 대시보드를 포함한 웹 및 모바일 애플리케이션용 로드 테스트 도구입니다.클라우드에서도 발생할 수 있는 대규모 부하에 사용됩니다.허가를 받았습니다. |
레퍼런스
- ^ Wescott, Bob (2013). The Every Computer Performance Book, Chapter 6: Load Testing. CreateSpace. ISBN 978-1482657753.
- ^ Platz, Wolfgang. "The future of load testing is BLU". InfoWorld. Retrieved 2018-11-23.
- ^ "We're All Load Testers Now (Maybe) - DevOps.com". DevOps.com. 2018-02-08. Retrieved 2018-11-23.
- ^ "How to Perform Load Testing With Real Browsers Using Flood Element?". geekflare.com. 2018-11-17. Retrieved 2018-11-23.
- ^ Erinle, Bayo (2014). JMeter Cookbook. Packt Publishing. ISBN 978-1783988280.
- ^ Erinle, Bayo (2015). Performance Testing with JMeter. Packt Publishing. ISBN 978-1784394813.
- ^ "Load Testing ASP.NET Applications with Visual Studio 2010". Eggheadcafe.com. Retrieved 2013-01-13.