부하시험

Load testing

부하 시험은 시스템에 대한 수요를 올리고 그 반응을 측정하는 과정이다.

소프트웨어 부하 테스트

하중 시험이라는 용어는 전문 소프트웨어 시험 공동체에서 다른 방식으로 사용된다. 부하 시험은 일반적으로 프로그램에 동시에 접속하는 복수의 사용자를 시뮬레이션하여 소프트웨어 프로그램의 예상 사용을 모델링하는 관행을 말한다.[1] 이와 같이, 이 시험은 다중 사용자 시스템과 가장 관련이 있다. 웹 서버와 같은 클라이언트/서버 모델을 사용하여 구축된 시스템이다. 그러나 다른 유형의 소프트웨어 시스템도 부하 테스트를 할 수 있다. 예를 들어, 워드프로세서나 그래픽 편집자는 극도로 큰 문서를 읽도록 강요받을 수 있고, 금융 패키지는 몇 년의 데이터를 바탕으로 보고서를 생성하도록 강요될 수 있다. 가장 정확한 하중 시험은 이론적 또는 해석적 모델링을 사용한 시험과는 달리 실제 사용을 시뮬레이션한다.

부하 테스트를 통해 실제 고객 행동을 기준으로 웹 사이트의 서비스 품질(QOS) 성능을 측정할 수 있다. 거의 모든 부하 테스트 도구와 프레임워크는 전통적인 부하 테스트 패러다임을 따른다: 고객이 당신의 웹사이트를 방문할 때 스크립트 레코더는 통신을 기록하고 관련 상호 작용 스크립트를 만든다. 로드 생성기는 기록된 스크립트를 재생하려고 시도하며, 이는 재생하기 전에 다른 테스트 매개변수로 수정될 수 있다. 재생 절차에서 하드웨어와 소프트웨어 통계는 모두 도체가 모니터링하고 수집하며, 이러한 통계에는 물리적 서버의 CPU, 메모리, 디스크 IO 및 응답 시간, 테스트 대상 시스템의 처리량(SUT) 등이 포함된다. 그리고 마지막으로 이러한 모든 통계를 분석하고 부하 시험 보고서가 생성될 것이다.

로드 및 성능 테스트는 이러한 서로 다른 부하에서 성능 측정을 모니터링하면서 소프트웨어를 여러 가상 및 라이브 사용자 수로 지정하여 다중 사용자 대상 소프트웨어를 분석한다. 부하 및 성능 시험은 일반적으로 소프트웨어 시스템이 작동하도록 허용되기 전에 생산 환경과 동일한 테스트 환경에서 수행된다.

를 들어, 쇼핑 카트 기능을 갖춘 웹사이트는 다음과 같은 활동을 하는 동시 사용자 100명을 지원해야 한다.

  • 25명의 가상 사용자(VUsers)가 로그인하여 항목을 검색한 다음 로그오프
  • 25명의 VUsers 로그인, 쇼핑 카트에 항목 추가, 체크아웃 및 로그오프
  • 25개의 VUsers 로그인하여 이전에 구입한 항목을 반환한 다음 로그오프
  • 25개의 VUsers가 후속 작업 없이 로그인함

테스트 분석가는 다양한 로드 테스트 도구를 사용하여 이러한 VUsers와 그 활동을 생성할 수 있다. 테스트가 시작되어 안정 상태에 도달하면 위에서 설명한 대로 100개의 VUser 로드로 애플리케이션을 테스트하고 있다. 그러면 애플리케이션의 성능을 모니터링하고 캡처할 수 있다.

하중 시험 계획이나 대본의 세부사항은 일반적으로 조직마다 다를 것이다. 예를 들어 위의 글머리표 목록에서 첫 번째 항목은 고유한 항목, 무작위 항목 또는 개발된 테스트 계획이나 스크립트에 따라 선택한 항목 집합을 검색하는 25개의 VUser를 나타낼 수 있다. 그러나 모든 부하 테스트 계획은 예상되는 최대 워크플로우 및 볼륨 범위에서 시스템 성능을 시뮬레이션하려고 시도한다. 하중 시험 합격 또는 불합격 기준(통과/실패 기준)은 조직마다 일반적으로 다르다. 허용 가능한 부하 시험 성능 지표를 명시하는 표준은 없다.

일반적인 오해는 부하 테스트 소프트웨어가 회귀 테스트 도구와 같은 기록 및 재생 기능을 제공한다는 것이다. 로드 테스트 도구는 전체 OSI 프로토콜 스택을 분석하지만 대부분의 회귀 테스트 도구는 GUI 성능에 초점을 맞춘다. 예를 들어 회귀 테스트 도구는 웹 브라우저의 버튼을 마우스 클릭으로 기록하고 재생하지만 로드 테스트 도구는 사용자가 버튼을 클릭한 후 웹 브라우저가 보내는 하이퍼텍스트를 전송한다. 다중 사용자 환경에서 로드 테스트 도구는 고유한 로그인 ID, 암호 등을 가진 각 사용자가 여러 사용자에 대해 하이퍼텍스트를 전송할 수 있다.

또한 이용 가능한 일반적인 부하 테스트 도구는 느린 성능의 원인에 대한 통찰력을 제공한다. 시스템 성능 저하의 원인은 다음과 같으며 이에 국한되지는 않는다.

  • 응용 프로그램 서버 또는 소프트웨어
  • 데이터베이스 서버
  • 네트워크 – 지연 시간, 정체
  • 클라이언트측 처리
  • 여러 서버 간의 로드 밸런싱

애플리케이션, 시스템 또는 서비스가 서비스 수준 계약 또는 SLA의 적용을 받는 경우 부하 테스트가 특히 중요하다.

하중 시험은 정상 및 예상 최대 하중 조건에서 모두 시스템의 동작을 결정하기 위해 수행된다. 병목 현상뿐만 아니라 애플리케이션의 최대 작동 용량을 식별하고 어떤 요소가 성능 저하를 유발하는지 판단하는 데 도움이 된다. 비정상적으로 높은 부하 또는 피크 부하에서 시스템의 반응을 시험하기 위해 시스템에 배치된 부하를 정상적인 사용 패턴을 넘어 올릴 때 스트레스 테스트라고 한다. 하중은 보통 너무 커서 오차 조건이 예상 결과지만 활동이 하중 시험으로 중단되어 스트레스 테스트가 될 때 명확한 경계가 없다.

"부하 테스트"라는 용어는 종종 동시성 테스트, 소프트웨어 성능 테스트, 신뢰성 테스트 및 특정 시나리오의 볼륨 테스트와 동의어로 사용된다. 이들 모두 주어진 소프트웨어의 사용 적합성 검증에 사용되는 기능 시험의 일부가 아닌 비기능 시험의 유형이다.

부하 테스트 대상 사용자 경험

위의 예에서 테스트 대상 장치(DUT)가 생산 부하인 동안 - 100VUsers를 대상으로 애플리케이션을 실행하십시오. 여기에서 대상 애플리케이션의 성능은 부하 상태의 사용자 환경일 것이다. 그것은 DUT가 얼마나 빨리 또는 느리게 반응하는지, 그리고 사용자가 얼마나 만족하는지 또는 어떻게 실제로 성능을 인지하는지를 설명한다.

브라우저 수준과 프로토콜 수준 사용자 비교

역사적으로, 모든 부하 테스트는 프로토콜 계층에서 동시 상호작용을 통해 트래픽을 시뮬레이션하는 자동화된 API 테스트로 수행되었다(종종 프로토콜 수준 사용자 또는 PLU라고도 함). 컨테이너와 클라우드 인프라의 발전으로, 현재 실제 브라우저(흔히 브라우저 레벨 사용자 또는 BLU라고 함)로 테스트할 수 있는 옵션이 존재한다.[2] 각 접근방식은 다른 유형의 애플리케이션에 대해 장점이 있지만, 일반적으로 브라우저 수준 사용자는 웹사이트가 경험하게 될 실제 트래픽과 더 유사하고 보다 현실적인 부하 프로파일과 응답 시간 측정을 제공할 것이다.[3] BLU는 확실히 테스트를 실행하는 더 비싼 방법이고 모든 유형의 애플리케이션, 특히 데스크톱 클라이언트나 API 기반 애플리케이션과 같은 웹 브라우저를 통해 액세스할 수 없는 애플리케이션과 함께 작동할 수 없다.[4]

로드 테스트 도구

공구명 회사명 면허증 유형 가격 책정 초점 메모들
아파치 JMeter Apache Jakarta 오픈 소스 프로젝트 아파치 라이선스 2.0 국부적 무료 부하 테스트 및 성능 측정을 위한 Java 데스크톱 애플리케이션.
아피자피 블루 스카이 프로덕션 소유권 클라우드 기반 무료 사용 계층, 유료 사용 계층 HTTP API 테스트 최대 10만 명의 동시 사용자 로드 가격은 매달 사용되는 초를 기준으로 한다.[5]
블레이즈 미터 BlazeMeter Ltd. 소유권 클라우드 기반 무료 요금제 이용 가능 웹 사이트, 웹 앱, 모바일, 데이터베이스 및 기타 시나리오 8개 지리적 위치에서 최대 20만 명의 동시 시뮬레이션 브라우저 사용자 로드 통합 및 기능 테스트에도 사용할 수 있다.
블리츠 스피렌트 커뮤니케이션스 소유권 클라우드 기반 평가판 사용 가능 웹 사이트, 모바일 및 REST API 그것은 전 세계 다른 위치에서 최대 5만 명의 동시 가상 사용자를 시뮬레이션할 수 있다.
홍수 트리센티스 사 소유권 클라우드 기반 무료 사용 계층, 유료 사용 계층 브라우저 기반 로드 테스트, API 및 프로토콜 기반 애플리케이션 AWS 및 Azure에서 사용할 수 있는 모든 지리적 영역에서 최대 수백만 명의 동시 사용자까지 확장 가능한 로드 및 사내 배포 가격은 매달 소비되는 가상 사용자 시간을 기준으로 한다.[6][7]
개틀링 오픈 소스 아파치 라이선스 2.0 국부적 무료 Java 웹 응용 프로그램 휴대용 HTML 보고서.
Loader.io SendGrid 연구소 소유권 클라우드 기반 무료 요금제 이용 가능 웹 응용 프로그램 및 API
로드러너 마이크로 포커스 소유권 국부적 평가판 사용 가능 주로 많은 수의 테스트(또는 많은 수의 가상 사용자)를 동시에 실행하는 데 사용된다. 유닛 및 통합 테스트에도 사용할 수 있다.
부하 테스트(SOA 테스트에 포함) 파라소프트 소유권 국부적 데모 사용 가능 부하 시 기능 및 성능을 검증하는 성능 테스트 도구. SOA 테스트 테스트, JUnits, 경량 소켓 기반 구성 요소 지원 동시성 문제를 탐지한다.
로드UI SmartBear 소프트웨어 EUPL 국부적 데모 사용 가능 주로 웹 서비스를 대상으로 하는 교차 플랫폼 로드 테스트 도구. 비누와 통합UI.
VSI 로그인 VSI, Inc. 로그인 소유권 국부적 평가판 사용 가능 가상 윈도우즈 데스크톱 워크로드
네오로드 네오티스 소유권 국부적 무료 요금제 이용 가능 웹 및 모바일 로드는 로컬 에이전트 또는 클라우드에서 생성할 수 있다.
오픈스타 개방형 시스템 테스트 아키텍처 GNU 일반 공중 라이선스 2.0 국부적 무료 웹 서버 CORBA 기반의 분산 소프트웨어 아키텍처 활용 Windows에서 사용할 수 있는 OpenSTA 이진 파일.
Rational Performance Tester IBM 소유권 국부적 평가판 사용 가능 Eclipse 기반 대규모 성능 테스트 툴은 서버 기반 애플리케이션의 시스템 응답 시간을 측정하기 위해 대용량 성능 테스트를 실행하는 데 주로 사용된다.
포위 공격 오픈 소스 오픈 소스 GPLv3 이상 국부적 무료 웹 서버 기본 인증, 쿠키, HTTP, HTTPS 및 FTP 프로토콜 지원
실크 퍼포머 볼랜드 소유권 국부적 평가판 사용 가능 클라우드 및 로컬 가상 에이전트가 포함된 애플리케이션 성능 도구. 대부분의 프로토콜 및 애플리케이션 지원 면허가 있다.
테스트 스튜디오 텔레릭 소유권 국부적 평가판 사용 가능 동시에 많은 사용자가 방문하는 경우 웹 사이트의 성능을 평가하십시오.
Visual Studio Enterprise 에디션 마이크로소프트 소유권 국부적 평가판 사용 가능 Visual Studio Enterprise 에디션에는 실제 사용자 로드를 시뮬레이션하기 위한 구성 조합으로 개발자가 다양한 테스트(웹, 유닛 등)를 실행할 수 있는 로드 테스트 도구가 포함되어 있다.[8] 마이크로소프트는 웹 성능과 부하 테스트 기능이 비주얼 스튜디오 2019 이후 더 이상 사용되지 않는다고 발표했다[when?].
웹LOAD 래드뷰 소유권 클라우드 기반 또는 로컬 무료 요금제 이용 가능 웹 및 모바일 애플리케이션 및 API 성능 테스트 분석을 위해 Web Dashboard를 비롯한 웹 및 모바일 애플리케이션을 위한 테스트 도구 로드 클라우드에서도 생성 가능한 대규모 부하에 사용. 면허가 있다.

물리 부하 시험

지질공학적 도면에 사용되는 기호

많은 유형의 기계, 엔진,[9] 구조 [10]및 모터는[11] 부하 테스트를 받는다. 하중은 지정된 안전 작업 부하(SWL), 최대 부하 또는 가중 부하 수준에 있을 수 있다. 지배 계약, 기술 명세서 또는 시험 방법에는 시험 수행의 세부사항이 수록되어 있다. 기계적 하중 시험의 목적은 재료, 베이스 고정장치를 포함한 구조물의 모든 구성부품이 작업 및 적재에 적합한지 확인하는 것이다.

여러 가지 유형의 하중 시험을 사용한다.

  • 정적 시험은 지정된 시간 동안 지정된 상수하중을 가하는 것이다.
  • 동적 시험이란 변수 또는 이동 부하가 적용되는 경우를 말한다.
  • 주기적 시험은 지정된 주기, 지속시간 및 조건에 대해 반복적인 하역 및 하역으로 구성된다.

Supply of Machine (Safety) Regulations 1992년 영국에서는 장비를 최초로 사용하기 전에 부하 시험을 실시한다고 명시하고 있다. 성능 시험은 지배 시험 방법, 규격 또는 계약에서 지정된 시간 동안 안전 작업 부하(SWL) 또는 기타 지정된 부하를 적용한다. Lifting Operation and Lifting Equipment Regulations 1998에 따르면, 주요 부품을 교체하거나, 한 위치에서 다른 위치로 또는 해당 담당자가 지시하는 대로 제품을 이동할 경우 초기 시험 후 영국 하중 시험이 필요하다.

자동차 충전 시스템

부하 시험은 자동차 배터리의 상태를 평가하는 데 사용될 수 있다. 테스터는 자동차의 스타터 모터와 유사한 저항을 가진 대형 저항기와 언로드 상태와 로드 상태에서 배터리의 출력 전압을 판독할 수 있는 미터로 구성된다. 테스터를 사용할 때는 먼저 배터리의 단선 전압을 점검한다. 개방 회로 전압이 사양(완전 충전된 배터리의 경우 12.6V)보다 낮으면 배터리가 먼저 충전된다. 배터리의 단선 전압을 판독하면 부하가 가해진다. 적용 시 크랭킹 시 자동차의 스타터 모터가 당기는 전류와 거의 동일한 전류를 소비한다. 배터리의 지정된 콜드 크랭킹 암페어에 기초하여 부하에 걸린 전압이 일정 지점 아래로 떨어지면 배터리가 불량이다. 달리는 자동차에도 부하 테스트를 통해 자동차 교류 발전기의 출력을 점검한다.

참고 항목

참조

  1. ^ Wescott, Bob (2013). The Every Computer Performance Book, Chapter 6: Load Testing. CreateSpace. ISBN 978-1482657753.
  2. ^ Platz, Wolfgang. "The future of load testing is BLU". InfoWorld. Retrieved 2018-11-23.
  3. ^ "We're All Load Testers Now (Maybe) - DevOps.com". DevOps.com. 2018-02-08. Retrieved 2018-11-23.
  4. ^ "How to Perform Load Testing With Real Browsers Using Flood Element?". geekflare.com. 2018-11-17. Retrieved 2018-11-23.
  5. ^ "Load Testing HTTP APIs with ApiZapi". Medium.com. 10 October 2021. Retrieved 2021-10-18.
  6. ^ Erinle, Bayo (2014). JMeter Cookbook. Packt Publishing. ISBN 978-1783988280.
  7. ^ Erinle, Bayo (2015). Performance Testing with JMeter. Packt Publishing. ISBN 978-1784394813.
  8. ^ "Load Testing ASP.NET Applications with Visual Studio 2010". Eggheadcafe.com. Retrieved 2013-01-13.
  9. ^ Harper, David; Devin Martin, Harold Miller, Robert Grimley and Frédéric Greiner (2003), Design of the 6C Heavy-Duty Gas Turbine, ASME Turbo Expo 2003, collocated with the 2003 International Joint Power Generation Conference, vol. 2: Turbo Expo 2003, Atlanta GA: ASME 1., pp. 833–841, ISBN 978-0-7918-3685-9, retrieved 2013-07-14{{citation}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  10. ^ Raines, Richard; Garnier, Jacques (2004), 23rd International Conference on Offshore Mechanics and Arctic Engineering, Volume 1, Parts a and B, 23rd International Conference on Offshore Mechanics and Arctic Engineering, vol. 1, Vancouver, BC: ASME, pp. 621–631, doi:10.1115/OMAE2004-51343, ISBN 978-0-7918-3743-6, retrieved 2013-07-14
  11. ^ DETERMINING ELECTRIC MOTOR LOAD AND EFFICIENCY (PDF), vol. DOE/GO-10097-517, US Department of Energy, 2010, ISBN 978-0-9709500-6-2, retrieved 2013-07-14

외부 링크