성능 테스트 도구 알아보기: Silk Performer (1) 개요

Updated:

1. Silk Performer 소개

성능 테스트 도구인 ‘Silk Performer’의 최초 출발은, 오스트리아 Linz에 위치한 ARC(A는 Ambichl, R은 Reindl)라는 회사의 Ambichl 박사와 Reindl 박사가 1990년대 초에 ‘SQL Bench’라는 도구를 개발하면서 시작되었습니다.

이후 ARC는 1997년 소프트웨어 품질 최적화(Software Quality Optimization) 솔루션 기업인 Segue Software, Inc.에 매각되었고, 기존의 Linz 개발팀은 계속해서 ‘Silk Performer’라는 이름으로 성능 테스트 도구에 대한 개발을 이어갔습니다. 2006년에 Borland에 의해 인수된 이후, 다시 2009년에 Micro Focus가 인수함으로써 현재까지 그 서비스를 제공하고 있습니다.

Marketshare1

참고로, Micro Focus는 영국에 본사를 둔 Enterprise Software Providers로, 2016년 HP의 소프트웨어 사업부문을 인수하면서 성능 테스트 상용 도구 점유율 1위인 ‘LoadRunner’(참고. LoadRunner를 개발한 Mercury Interactive는 2006년 HP에 인수합병됨)도 함께 인수한 바 있습니다.

‘상용 성능 테스트 도구’의 시장 점유율을 살펴보면 (예전 자료이긴 하지만, 그나마 조사자료들 중 가장 최근인 2008년도 시점 기준으로), HP(Mercury Interactive)의 LoadRunner가 77%의 압도적인 시장 점유율을 차지하고 있으며, SEGUE의 Silk Performer는 4% 수준의 점유율을 보여주고 있습니다.

Marketshare1

Source: Hp Loadrunner

한편, 이스라엘에 본사를 둔 글로벌 테스팅 및 품질보증 전문기업인 Qualitest Group에서는, 2016년 성능테스트 도구 시장 점유율에 대해 ‘Open Source 도구’를 포함한 통계를 내놓았는데, 여기서는 Jmeter가 51%, LoadRunner가 39%, Silk Performer가 7% 수준의 점유율을 보여주고 있습니다.

일반적으로 기업들이 상용도구 외에도 Jmeter로 대표되는 Open Source 도구를 함께 사용하는 추세를 감안할 때, 최근의 상용 성능테스트 도구 시장은 Micro Focus의 LoadRunner와 Silk Performer 2개 도구가 대부분을 차지하고 있음을 알 수 있습니다.

Marketshare2

Source: qualitestgroup.com

2. 성능 테스트 도구 점유율 변화 관련

위의 2016년 자료를 보면, Jmeter가 높은 비중을 차지하고 있음에도 불구하고, 2008년 대비 Silk Performer의 점유율이 다소 높아진 상태임을 알 수 있습니다. 상대적으로, LoadRunner의 점유율이 줄어든 이유에 대해서는 굳이 객관적인 분석자료를 인용하지 않더라도, 사용자 입장에서 그간의 경험을 통해 어느 정도 예상이 되는 부분이 있습니다. 이해를 돕기 위해 그간의 LoadRunner 판매 정책 변화 이력에 대해 간단히 정리하고 넘어가고자 합니다.

SK주식회사 C&C에서는 2004년부터 Mercury Interactive를 통해 LoadRunner를 도입하여 성능 테스트 수행 업무에 적용해 왔습니다. 최초 도입 시, Tool 자체의 비용은 억대 수준의 고가였지만, 이때 함께 탑재되는 Permanent License는 10Vuser에 불과하였기 때문에, Tool만 구입한다고 해서 바로 부하 발생을 통해 성능 테스트 수행이 가능한 구조는 아니었습니다.

Tool 구입 외에, 별도로 성능테스트 수행시마다 ‘24시간 한정’으로 사용할 수 있는 VUDs(Virtual User Days)를 1년 단위로 선구매해야 했습니다. 또한, 필요시점마다 License Key 발급을 벤더사에 요청하여 LoadRunner에 입력해야만, 비로소 해당 사용자 수(ex. 500Vuser) 만큼의 부하 발생이 가능해지는 다소 복잡한 사용구조로 운영되었습니다.

참고로, LoadRunner는 통신, 제조, 금융, 포털 등의 End User 고객 대상으로는 Permanent License를 판매하여, 기간 제한없이 해당 License 한도(ex. 3,000Vuser) 내에서 반복적인 사용이 가능하였지만, SI 회사와 같이 고객사가 고정되지 않고 다양한 경우에는, 소진형 License만 판매했기 때문에 매년마다 반복적으로 License의 구매가 필요했습니다.

license

Source: community.microfocus.com

정리하면, 전사적인 성능 테스트 지원을 위해서는 매년 일정 수량의 VUDs License를 선구매한 후(ex. 10,000VUD), 성능 테스트 수행시마다 필요수량(ex. 300VUDs)만큼 요청하여 차감해가는 방식으로 성능 테스트를 진행하였으며, 고객사에서 LoadRunner를 기 보유한 경우에는 해당 라이선스를 활용하여 성능 테스트를 수행하기도 했습니다.

한편, 2006년 HP가 LoadRunner를 인수한 이후, 사용자 입장에서는 점점 더 불편한 형태로 Vuser License의 판매 정책이 변경되어 갔습니다.(ex. VUDs 가격상승, Protocol별 분리판매, 1,000개 단위 구매 요구, 1년이내 사용 제한 등) 그러다가, 2011년 4월에 와서는 급기야(!) HP에서 ‘VUDs 판매를 중단하겠다’는 선언을 하기에 이릅니다. 회사에서 수억의 비용을 들여 투자하고 매년 유지보수 비용을 지불해온 성능 테스트 자동화 도구가, 7년만에 부하를 전혀 발생할 수 없는 쓸모없는 자산이 되어버린 것입니다. 다행히(?) 업계에서 항의가 많이 들어왔던 것 때문인지, 얼마 지나지 않아 ‘VUD를 판매했던 회사에 한해 정책을 지속한다’고 다시 기준을 바꾸어 전달을 해왔습니다.

정리해보면, (SI회사 입장에서) 기존의 LoadRunner의 판매 정책은,

  • Permanent License 구입 불가
  • (가격이 비싼) 24시간 제한의 소진형 VUDs 지속 구입 필요
  • 성능테스트 실패시 VUDs 재구입 필요로 PJT 비용증가 부담
  • Tool 자체에 대한 유지보수 비용 매년 발생
  • License 발급시마다 HP에서 대상 고객사 정보 요구 등

많은 핸디캡을 가진 성능테스트 Tool이었습니다. 이후에도 정책의 변화가 있긴 했지만, 여전히 LoadRunner는 최초에 구입하기에도 비싸고, Tool을 유지하고 사용하는데도 적지않은 지출이 계속적으로 요구되는 도구의 이미지로 강하게 인식되었습니다.

3. LoadRunner의 대안은 Silk Performer?

반면, 위와같은 상황에서 Silk Performer는

  • LoadRunner 대비 Tool 구입/유지보수 비용이 저렴하고,
  • Permanent License로 구입이 가능하며,
  • 성능 테스트 대상 고객사의 사용제한이 없는 등

가격 및 Tool 운영 측면에서 합리적인 대안이 될 수 있는 장점들을 가지고 있기에, 점유율을 다소 높이는데 있어 상대적으로 유리한 입장이지 않았나 생각이 듭니다.

한편, 2017년 LoadRunner가 HP에서 또다시 Micro Focus로 인수된 이후 현재까지, LoadRunner에서는 주목할만한 긍정적인 변화들이 진행되고 있으며, 이 부분은 지난 Tech Blog 글을 통해서도 정리한 바 있습니다.

LR Family Source: Micro Focus의 LoadRunner Family “re launch” 동향

Micro Focus는 LoadRunner Family를 다시 런칭하면서 개발자 친화적인 LoadRunner Developer를 새롭게 출시하였으며, 50Vuser의 Perpetual License를 무상으로 제공함으로써, 모든 플랫폼 및 IDE 환경에서부터 그 활용도를 점차 높이기 위해 노력하고 있습니다.

또한, Cloud 환경에서도 필요한 사용시간과 Vuser수 만큼 사용 가능하도록, LoadRunner Cloud 기반 서비스를 AWS와 MS Azure를 통해 제공하고 있습니다. 아직 대외적으로 공표되지는 않았지만, LoadRunner Family간 효과적으로 연동 사용이 가능하도록 지원하는 방안도 개발중에 있는 것으로 알고 있습니다.

성능테스트 수행의 중심이 전사 전문조직에서 PJT 단위 조직별로 확산되고, Tool에 대한 예산 또한 전사비용에서 PJT별 부담으로 바뀌어가는 것이 국내외의 공통적인 추세임을 감안할 때, Micro Focus에서 이러한 변화된 환경에 적합한 License 정책을 지속적으로 개발 제공함으로써, 우수한 성능 Tool인 LoadRunner가 더이상 선택에서 제외되지 않고 확산 사용될 수 있길 기대해 봅니다.

4. Silk Performer의 장단점 분석

Quality Engineering & Software Testing 서비스 전문 기업인 Ciginiti에서는 성능 테스트 도구들의 장단점을 분석한 바 있으며, 그 내용들 중 Silk Performer에 대한 부분만 잠시 살펴보도록 하겠습니다.

Choosing the right Performance Test Tools – An In-depth Analysis

Silk Performer

Cigniti SilkPerfomer는 LoadRunner가 가지고 있는 거의 모든 기능들을 가지고 있습니다. SilkPerfomer의 부하 테스트는 Project기반 접근방식을 강제하고 있습니다. 모든 부하테스트 산출물들을 단일 위치에서 보관하는 형태를 제공함으로써, 보다 강력한 통제 기능을 제공합니다.

Pros:

  • 테스트 산출물간의 긴밀한 통합을 제공합니다. 이를 통해, 단일 위치에서 모든 부하 테스트 관련 산출물들을 보다 쉽게 유지 관리할 수 있습니다.
  • SilkPerformer가 제공하는 TrueLog™ explorer는 동종업계에서는 경쟁자가 없을 정도로 우수합니다. TrueLog™에서 제공하는 시각적인 Root Cause Analysis를 통해, 병목지점을 쉽게 찾을 수 있습니다.
  • Real Time Browser Behaviour를 모방하는 관점에서 우수합니다.
  • 스크립트의 Correlations 기능이 다른 도구 대비 훨씬 간단합니다.

Cons:

  • 리포팅 및 분석 기능이 LoadRunner만큼 성숙한 수준이 아닙니다.
  • 테스트 스크립팅을 위해 고유한 스크립트 언어를 사용합니다. 그 결과, Learning Curve가 다소 높은 측면이 있습니다.
  • LoadRunner와 비교할 때 파라미터 처리가 쉽지 않습니다.
  • LoadRunner와 비교할 때 스크립트가 직관적이지 않습니다.
  • 성능 모니터링을 위한 진단 도구와의 통합기능이 빈약합니다.

Source: Cigniti

5. Silk Performer 기능 개요

Silk Performer의 상세 사용법에 대한 설명에 들어가기에 앞서, Silk Performer가 어떤 구조로 구성되어 작동하는지에 대해 알아보도록 하겠습니다. Silk Performer의 아키텍처, 컴포넌트 그리고 지원 프로토콜에 대해 순서대로 간략하게 설명을 진행하겠습니다.

1) Silk Performer 아키텍처

Silk Performer는 우선 LoadRunner와 유사하게 성능테스트를 제어하기 위한 Controller 기능(MMC/Multi-Machine Controller)을 담당하는 ‘Silk Performer Workbench’에서 스크립트를 작성하고, Agent별로 가상사용자(Virtual Users)를 할당한 후, 대상 시스템에 부하를 발생하는 구조입니다.

Virtual Users를 통한 부하 발생이 종료되면, Agent별로 수집된 성능 데이터 정보에 대해 분석 모듈인 ‘Silk Performance Explorer’를 통해 그 결과를 분석하고 보고서를 편집하게 됩니다.

Silk Performer

Source: Micro Focus Community

2) Silk Performer 컴포넌트

위에서 설명한 바와 같이, Silk Performer Workbench(MMC/Multi-Machine Controller)는 스크립트의 작성, 부하테스트의 관리, 결과 분석 및 RCA(Root Cause Analysis)를 수행하는데 사용되고 있으며, 이러한 MMC(Multi-Machine Controller)는 아래와 같이 4개의 컴포넌트를 포함하고 있습니다.

Silk Performer

Source: Silk Performer Presentation

  • Recorder, Script Editor, and Compiler

    Silk Performer Recorder는 테스트 대상 Client Application과 Server 사이의 실제 트래픽을 캡쳐하여 기록합니다. 스크립트는 Silk Performer 고유의 스크립트 언어인 BDL(Benchmark Description Language)로 작성됩니다.

  • True Log Explorer

    True Log Explorer는 Tree-Mode의 형태로 지원되며, 스크립트 디버깅, 동적 데이터 자동 탐색 및 파라미터 처리 등을 지원합니다.

  • Performance Explorer

    Performance Explorer는 Real Time Monitoring을 통해 확보된 측정지표들을 보여주고, 이전에 수행된 부하 테스트의 결과를 분석하는 기능을 제공합니다.

  • Server Analysis Module

    Server Analysis Module은 서버 측면의 모니터링 정보를 제공하여, 병목 등의 문제점을 식별할 수 있도록 지원합니다.

3) 지원 프로토콜

다양한 환경에서 스크립트 작성이 가능하도록 지원하기 위한 프로토콜은, 라이선스 정책에 따라 Web, Standard, Premium 3가지로 구분하여 제공되고 있으며, 각각의 프로토콜 구성 내역은 다음과 같습니다.

  • Web: Web Browser-Driven GUI-level testing in single session mode with selected web browsers HTTP(S) (Web browser low level) HTTP(S)/HTML (Web browser high level) HTTP(S)/XML (Web services, SOAP) HTTP Live Streaming (HLS) Silverlight Mobile SAP NetWeaver WebDAV (MS Outlook Web Access) Email (SMTP/POP) FTP TCP/IP UDP AMF0/AMF3/FLEX Java over HTTP DLL Interface

  • Standard: All of Web, plus: Visual Studio Extension Java Add-On DB2-CLI Add-On OCI Add-On ODBC Add-On Visual Basic Add-On (Framework) Directory server (LDAP) CORBA Add-On

  • Premium: All of Standard, plus: GUI Level Testing (Silk4J, Silk4NET, Silk Test Classic) Remedy Web ARS SAPGUI Add-On for Silk Performer Oracle Applications/Forms Add-On PeopleSoft Add-On Siebel Add-On Citrix Add-On Terminal Emulation (Green-Screen) Add-On Tuxedo/ATMI Add-On

    Soruce: Micro Focus

이상으로 Silk Performer의 개요에 대해 살펴 보았으며, 다음 글에서는 실제적인 Silk Performer의 사용을 위해, PC에 Tool을 설치한 이후의 스크립트 작성, Workload 설계, 부하 발생 및 결과 분석에 사용되는 Silk Performer의 세부적인 기능들에 대해 단계별로 간단히 살펴보도록 하겠습니다.