性能測試的概念
一般來說,性能是一種指標,表明軟件系統(tǒng)或構件對其及時性要求的符合程度;其次,性能是軟件產品的一種特性,可以用時間來進行度量。性能的及時性用響應時間或吞吐量來衡量。響應時間是指服務器對請求作出響應所需要的時間。
系統(tǒng)性能包括時間和空間兩個維度,時間是指客戶操作業(yè)務的響應時間,空間是指系統(tǒng)執(zhí)行客戶端請求時,系統(tǒng)資源消耗情況。客戶關注的性能只是時間的表現(xiàn),客戶不關注是什么原因引起的性能問題,但性能測試工程師和系統(tǒng)工程師就必須關注系統(tǒng)資源使用的情況。
性能測試是測試系統(tǒng)端到端(即客戶端發(fā)送請求經(jīng)過服務器將信息返回的過程)的性能指標,目前在系統(tǒng)設計階段無法設計出一個定量性能的系統(tǒng),即開發(fā)工程師無法保證設計好的系統(tǒng)其性能表現(xiàn)如何,還是得靠測試來驗證性能的表現(xiàn),性能測試是一系列的測試過程。在系統(tǒng)投入到市場之前,必須對系統(tǒng)的性能進行測試,否則無法確定系統(tǒng)的性能是否能滿足客戶的需求。
性能測試自動化
手工進行性能測試存在諸多困難,如圖16-1 所示。
1、消耗大量的測試資源(主要包括測試人員和測試機器的成本)。
2、如何保證并發(fā)測試?
3、如何收集測試結果?
4、如何重復執(zhí)行該測試?
需要使用性能測試工具來代替手工測試,即性能測試自動化的過程,自動化性能測試是利用人員、流程和技術來減少應用程序部署、升級或補丁部署過程中的風險的方法。自動化性能測試的核心是將生產工作量應用到部署前的系統(tǒng),同時測量系統(tǒng)性能和最終用戶體驗。
自動化性能測試解決方案應該能夠解決以下問題:
1、模擬成百上千個用戶與系統(tǒng)交互,而無需過多的硬件需求。
2、 測量最終用戶響應時間。
3、 監(jiān)控負載系統(tǒng)組件。
高效的自動化測試解決方案(即性能測試工具)通常使用四個主要組件來構建并運行測試:
1、 虛擬用戶生成程序,用于將最終用戶業(yè)務流程捕獲到自動化腳本中。
2、 監(jiān)視器,用于組織、驅動、管理和監(jiān)控負載。
3、 負載生成程序,用于在執(zhí)行時運行虛擬用戶。
4、 分析引擎,用于查看、剖析和比較結果。
結構完善的性能測試應該能夠回答以下問題:
1、 應用程序對目標用戶響應是否夠迅速?
2、 應用程序是否能夠處理預期的用戶負載以及更多的負載?
3、 應用程序是否能夠處理業(yè)務所需要的大量交易?
4、 應用程序在預期或非預期的用戶負載下是否穩(wěn)定?
5、 在投入使用時用戶是否具有積極的體驗(即快速響應時間)?
主流性能測試工具
目前市場上的性能測試工具較多,主流的性能測試工具有LoadRunner、QALoad、SilkPerformer和Rational Performance Tester。這類都為負載性能測試工具,其原理都相同。首先是錄制腳本,通過錄制腳本,性能測試工具通過協(xié)議來獲取客戶向服務器端發(fā)送的內容;接著通過回放腳本,將錄制好的內容進行回放,來模擬多用戶同時向被測試系統(tǒng)發(fā)送請求,以達到并發(fā)測試的目的;最后性能測試工具將收集到的測試數(shù)據(jù)保存到數(shù)據(jù)庫中,通過分析器生成相關的視圖達到性能測試的目的。
下面就這幾款主流性能測試工具進行簡單的介紹:
1、LoadRunner。
LoadRunner 是一種預測系統(tǒng)行為和性能的負載測試工具。可以模擬上千萬用戶并發(fā)負載并實時監(jiān)測系統(tǒng)性能的方式來確認和查找問題。LoadRunner 能夠對整個企業(yè)架構進行測試。通過使用LoadRunner,企業(yè)能最大限度地縮短測試時間,優(yōu)化性能和加速應用系統(tǒng)的發(fā)布周期。當前最新版本為11.0 版,生產廠商Mercury(美利科)已于2006 年被HP(惠普)收購。
LoadRunner 支持的協(xié)議如下:
1) 自定義:C Vuser、VB Vuser、VBScript Vuser、http://VB.NET Vuser、Java Vuser、JavaScript Vuser。
2) 電子商務:Action Message Format(AMF)、AJAX(Click and Script)、File Transfer Protocol (FTP)、Flex、Listing Directory Service(LDAP)、Microsoft .NET、Web(Click and Script)、Web(HTTP/HTML)、Web Services。
3) 客戶端/服務器:DB2 CLI、Domain Name Resolution(DNS)、Informix、MS SQL Server、 ODBC、Oracle(2-Tier)、Sybase CTlib、Sybase DBlib、Windows Sockets。
4) ERP/CRM : Oracle NCA 、Oracle Web Applications 11i 、PeopleSoft Enterprise 、Peop leSoft-Tuxedo、SAP-Web、SAP(Click and Script)、SAPGUI、Siebel-Web。
5) 郵件服務:Internet Messaging(IMAP)、MS Exchange(MAP)、Post Office Protocol(POP3)、Simple Mail Transfer Protocol(SMTP)。
6) 中間件:Tuxedo、Tuxedo 6。
7) 無線服務:i-Mode、Multimedia Messaging Service(MMS)、WAP。
8) 流媒體:Media Player(MMS)、Real。
2、QALoad。
QALoad 是客戶/服務器系統(tǒng)、企業(yè)資源計劃(ERP)和電子商務應用的自動化負載測試工具。QALoad 是QACenter 的一部分,它通過可重復的、真實的測試,能夠徹底地度量應用的可擴展性和性能。QACenter 匯集完整的跨企業(yè)的自動測試產品,專為提高軟件質量而設計。QACenter 可以在整個開發(fā)生命周期,跨越多種平臺自動執(zhí)行測試任務。在投產準備時期,QALoad 可以模擬成百上千的用戶并發(fā)執(zhí)行關鍵業(yè)務而完成對應用程序的測試,并針對所發(fā)現(xiàn)的問題對系統(tǒng)性能進行優(yōu)化,確保應用的成功部署。當前最新版本為5.6 版,生產廠商為Compuware(康博)公司。
QALoad 支持的協(xié)議如下:
通信層:Winsock、IIOP、WWW、WAP、Net Load。
數(shù)據(jù)層:ODBC、MS SQL Server、Oracle、Oracle Forms Server、Sybase、DB2、ADO。
應用層:SAP、Tuxedo、Uniface、QARun、Java。
3、SilkPerformer。
SilkPerformer 是業(yè)界領先的應用性能測試解決方案,它支持目前業(yè)界主流應用平臺,通過成千上萬的虛擬用戶來模擬生產環(huán)境可能遇到的各種真實負載場景,幫助用戶快速定位可能存在的性能瓶頸,同時提供診斷、分析能力幫助開發(fā)、測試團隊快速修復應用性能問題,為應用發(fā)布決策提供有力的信息支撐,加速產品發(fā)布。當前最新版本為7.0 版,生產廠商為Micro Focus 公司。
SilkPerformer 支持的協(xié)議如下:
1) 主流數(shù)據(jù)庫訪問協(xié)議:ODBC、ADO、Oracle OCI、IBM CLI。
2) 主流協(xié)議:HTTP(S)、SMTP/POP、MAPI、FTP、LDAP、WAP、MMS、Radius、TCP/IP、UDP、SSL、SOAP(XML)、i-Mode。
3) 流媒體技術:Macromedia Flex/AMF、Streaming(MS, Real)。
4) 主流接口和應用框架:CORBA(IIOP)、EJB(IIOP、RMI)、(D)COM(COM+、MTS)、ActiveX、DLL、BEA Tuxedo(ATMI、JOLT)、Oracle Forms、.NET Framework、J2EE/Java Framework、VB6 Framework。
5) ERP/CRM 系統(tǒng):SAP、PeopleSoft、Siebel、Oracle Applications。
6) 其他:Outlook Web Access、MS .NET SOAP Stack、Apache Java SOAP Stack、Chordiant、E.piphany、Lawson、SSPS ShowCase、Amdocs Clarify。
4、Rational Performance Tester。
Rational Performance Tester(簡稱 RPT)也是一款性能測試工具,適用于基于 Web 的應用程序的性能和可靠性測試。Rational Performance Tester 將易用性與深入分析功能相結合,從而簡化了測試創(chuàng)建、負載生成和數(shù)據(jù)收集,以幫助確保應用程序具有支持數(shù)以千計并發(fā)用戶并穩(wěn)定運行的性能。當前最新版本為8.1 版,生產廠商為IBM Rational 公司。
Rational Performance Tester 支持的協(xié)議包括:HTTP、SAP、Siebel、SIP、TCP Socket 和Citrix 等。
Rational Performance Tester 在錄制腳本時可以選擇4 種類型的記錄器:RPT HTTP 記錄、SAP記錄、SDK Smaple Socket 記錄和Citrix 記錄。