qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          軟件性能測試指標及其注意地方

          并發(fā)性能測試的種類與指標

            并發(fā)性能測試的種類取決于并發(fā)性能測試工具監(jiān)控的對象,以QALoad自動化負載測試工具為例。軟 件針對各種測試目標提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、 Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、Java scrīpt等不同的監(jiān)控對象,支持Windows和UNIX測試環(huán)境。

            最關(guān)鍵的仍然是測試過程中對監(jiān)控對象的靈活應(yīng)用,例如目前三層結(jié)構(gòu)的運行模式廣泛使用,對中間件的并發(fā)性能測試作為問題被提到議事日程上來,許多系統(tǒng)都采用了國產(chǎn)中間件,選擇Java scrīpt監(jiān)控對象,手工編寫腳本,可以達到測試目的。

            采用自動化負載測試工具執(zhí)行的并發(fā)性能測試,基本遵循的測試過程有:測試需求與測試內(nèi)容,測試案例制定,測試環(huán)境準備,測試腳本錄制、編寫與調(diào)試,腳本分配、回放配置與加載策略,測試執(zhí)行跟蹤,結(jié)果分析與定位問題所在,測試報告與測試評估。

            并發(fā)性能測試監(jiān)控的對象不同,測試的主要指標也不相同,主要的測試指標包括交易處理性能指標和 UNIX資源監(jiān)控其中,交易處理性能指標包括交易結(jié)果、每分鐘交易數(shù)、交易響應(yīng)時間(Min:最小服務(wù)器響應(yīng)時間;Mean:平均服務(wù)器響應(yīng)時 間;Max:最大服務(wù)器響應(yīng)時間;StdDev:事務(wù)處理服務(wù)器響應(yīng)的偏差,值越大,偏差越大;Median:中值響應(yīng)時間;90%:90%事務(wù)處理的服 務(wù)器響應(yīng)時間)、虛擬并發(fā)用戶數(shù)。

            性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測 試。負載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進行。通過負載測試,確定在各種工作負載下系統(tǒng)的性能,目標是測試當(dāng)負載逐漸增加時,系統(tǒng)各項性能指 標的變化情況。壓力測試是通過確定一個系統(tǒng)的瓶頸或者不能接收的性能點,來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。

            一、概述

            性能測試在軟件的質(zhì)量保證中起著重要的作用,它包括的測試內(nèi)容豐富多樣。中國軟件評測中心將性能測 試概括為三個方面:應(yīng)用在客戶端性能的測試、應(yīng)用在網(wǎng)絡(luò)上性能的測試和應(yīng)用在服務(wù)器端性能的測試。通常情況下,三方面有效、合理的結(jié)合,可以達到對系統(tǒng)性 能全面的分析和瓶頸的預(yù)測。

            ·應(yīng)用在客戶端性能的測試

            應(yīng)用在客戶端性能測試的目的是考察客戶端應(yīng)用的性能,測試的入口是客戶端。它主要包括并發(fā)性能測試、疲勞強度測試、大數(shù)據(jù)量測試和速度測試等,其中并發(fā)性能測試是重點。

            并發(fā)性能測試是重點

            并發(fā)性能測試的過程是一個負載測試和壓力測試的過程,即逐漸增加負載,直到系統(tǒng)的瓶頸或者不能接收 的性能點,通過綜合分析交易執(zhí)行指標和資源監(jiān)控指標來確定系統(tǒng)并發(fā)性能的過程。負載測試(Load Testing)是確定在各種工作負載下系統(tǒng)的性能,目標是測試當(dāng)負載逐漸增加時,系統(tǒng)組成部分的相應(yīng)輸出項,例如通過量、響應(yīng)時間、CPU負載、內(nèi)存使 用等來決定系統(tǒng)的性能。負載測試是一個分析軟件應(yīng)用程序和支撐架構(gòu)、模擬真實環(huán)境的使用,從而來確定能夠接收的性能過程。壓力測試(Stress Testing)是通過確定一個系統(tǒng)的瓶頸或者不能接收的性能點,來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。

            并發(fā)性能測試的目的主要體現(xiàn)在三個方面:以真實的業(yè)務(wù)為依據(jù),選擇有代表性的、關(guān)鍵的業(yè)務(wù)操作設(shè)計 測試案例,以評價系統(tǒng)的當(dāng)前性能當(dāng)擴展應(yīng)用程序的功能或者新的應(yīng)用程序?qū)⒁徊渴饡r,負載測試會幫助確定系統(tǒng)是否還能夠處理期望的用戶負載,以預(yù)測系統(tǒng) 的未來性能;通過模擬成百上千個用戶,重復(fù)執(zhí)行和運行測試,可以確認性能瓶頸并優(yōu)化和調(diào)整應(yīng)用,目的在于尋找到瓶頸問題。

            當(dāng)一家企業(yè)自己組織力量或委托軟件公司代為開發(fā)一套應(yīng)用系統(tǒng)的時候,尤其是以后在生產(chǎn)環(huán)境中實際使 用起來,用戶往往會產(chǎn)生疑問,這套系統(tǒng)能不能承受大量的并發(fā)用戶同時訪問? 這類問題最常見于采用聯(lián)機事務(wù)處理(OLTP)方式數(shù)據(jù)庫應(yīng)用、Web瀏覽和視頻點播等系統(tǒng)。這種問題的解決要借助于科學(xué)的軟件測試手段和先進的測試工 具。

            舉例說明:電信計費軟件

            眾所周知,每月20日左右是市話交費的高峰期,全市幾千個收費網(wǎng)點同時啟動。收費過程一般分為兩 步,首先要根據(jù)用戶提出的電話號碼來查詢出其當(dāng)月產(chǎn)生費用,然后收取現(xiàn)金并將此用戶修改為已交費狀態(tài)。一個用戶看起來簡單的兩個步驟,但當(dāng)成百上千的終 端,同時執(zhí)行這樣的操作時,情況就大不一樣了,如此眾多的交易同時發(fā)生,對應(yīng)用程序本身、操作系統(tǒng)、中心數(shù)據(jù)庫服務(wù)器、中間件服務(wù)器、網(wǎng)絡(luò)設(shè)備的承受力都 是一個嚴峻的考驗。決策者不可能在發(fā)生問題后才考慮系統(tǒng)的承受力, 預(yù)見軟件的并發(fā)承受力, 這是在軟件測試階段就應(yīng)該解決的問題。

            目前,大多數(shù)公司企業(yè)需要支持成百上千名用戶,各類應(yīng)用環(huán)境以及由不同供應(yīng)商提供的元件組裝起來的復(fù)雜產(chǎn)品,難以預(yù)知的用戶負載和愈來愈復(fù)雜的應(yīng)用程序,使公司擔(dān)憂會發(fā)生投放性能差、用戶遭受反應(yīng)慢、系統(tǒng)失靈等問題。其結(jié)果就是導(dǎo)致公司收益的損失。

            如何模擬實際情況呢? 找若干臺電腦和同樣數(shù)目的操作人員在同一時刻進行操作,然后拿秒表記錄下反應(yīng)時間?這樣的手工作坊式的測試方法不切實際,且無法捕捉程序內(nèi)部變化情況,這樣就需要壓力測試工具的輔助。

            測試的基本策略是自動負載測試,通過在一臺或幾臺PC機上模擬成百或上千的虛擬用戶同時執(zhí)行業(yè)務(wù)的 情景,對應(yīng)用程序進行測試,同時記錄下每一事務(wù)處理的時間、中間件服務(wù)器峰值數(shù)據(jù)、數(shù)據(jù)庫狀態(tài)等。通過可重復(fù)的、真實的測試能夠徹底地度量應(yīng)用的可擴展性 和性能,確定問題所在以及優(yōu)化系統(tǒng)性能。預(yù)先知道了系統(tǒng)的承受力,就為最終用戶規(guī)劃整個運行環(huán)境的配置提供了有力的依據(jù)。

            并發(fā)性能測試前的準備工作

            測試環(huán)境:配置測試環(huán)境是測試實施的一個重要階段,測試環(huán)境的適合與否會嚴重影響測試結(jié)果的真實性 和正確性。測試環(huán)境包括硬件環(huán)境和軟件環(huán)境,硬件環(huán)境指測試必需的服務(wù)器、客戶端、網(wǎng)絡(luò)連接設(shè)備以及打印機/掃描儀等輔助硬件設(shè)備所構(gòu)成的環(huán)境;軟件環(huán)境 指被測軟件運行時的操作系統(tǒng)、數(shù)據(jù)庫及其他應(yīng)用軟件構(gòu)成的環(huán)境。

            一個充分準備好的測試環(huán)境有三個優(yōu)點:一個穩(wěn)定、可重復(fù)的測試環(huán)境,能夠保證測試結(jié)果的正確;保證達到測試執(zhí)行的技術(shù)需求;保證得到正確的、可重復(fù)的以及易理解的測試結(jié)果。

            測試工具:并發(fā)性能測試是在客戶端執(zhí)行的黑盒測試,一般不采用手工方式,而是利用工具采用自動化方 式進行。目前,成熟的并發(fā)性能測試工具有很多,選擇的依據(jù)主要是測試需求和性能價格比。著名的并發(fā)性能測試工具有QALoad、LoadRunner、 Benchmark Factory和Webstress等。這些測試工具都是自動化負載測試工具,通過可重復(fù)的、真實的測試,能夠徹底地度量應(yīng)用的可擴展性和性能,可以在整 個開發(fā)生命周期、跨越多種平臺、自動執(zhí)行測試任務(wù),可以模擬成百上千的用戶并發(fā)執(zhí)行關(guān)鍵業(yè)務(wù)而完成對應(yīng)用程序的測試。

            測試數(shù)據(jù):在初始的測試環(huán)境中需要輸入一些適當(dāng)?shù)臏y試數(shù)據(jù),目的是識別數(shù)據(jù)狀態(tài)并且驗證用于測試的 測試案例,在正式的測試開始以前對測試案例進行調(diào)試,將正式測試開始時的錯誤降到最低。在測試進行到關(guān)鍵過程環(huán)節(jié)時,非常有必要進行數(shù)據(jù)狀態(tài)的備份。制造 初始數(shù)據(jù)意味著將合適的數(shù)據(jù)存儲下來,需要的時候恢復(fù)它,初始數(shù)據(jù)提供了一個基線用來評估測試執(zhí)行的結(jié)果。

            在測試正式執(zhí)行時,還需要準備業(yè)務(wù)測試數(shù)據(jù),比如測試并發(fā)查詢業(yè)務(wù),那么要求對應(yīng)的數(shù)據(jù)庫和表中有相當(dāng)?shù)臄?shù)據(jù)量以及數(shù)據(jù)的種類應(yīng)能覆蓋全部業(yè)務(wù)。

            模擬真實環(huán)境測試,有些軟件,特別是面向大眾的商品化軟件,在測試時常常需要考察在真實環(huán)境中的表現(xiàn)。如測試殺毒軟件的掃描速度時,硬盤上布置的不同類型文件的比例要盡量接近真實環(huán)境,這樣測試出來的數(shù)據(jù)才有實際意義。

            并發(fā)性能測試的種類與指標

            并發(fā)性能測試的種類取決于并發(fā)性能測試工具監(jiān)控的對象,以QALoad自動化負載測試工具為例。軟 件針對各種測試目標提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、 Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、Java scrīpt等不同的監(jiān)控對象,支持Windows和UNIX測試環(huán)境。

            最關(guān)鍵的仍然是測試過程中對監(jiān)控對象的靈活應(yīng)用,例如目前三層結(jié)構(gòu)的運行模式廣泛使用,對中間件的并發(fā)性能測試作為問題被提到議事日程上來,許多系統(tǒng)都采用了國產(chǎn)中間件,選擇Java scrīpt監(jiān)控對象,手工編寫腳本,可以達到測試目的。

          posted on 2011-10-14 17:01 順其自然EVO 閱讀(2047) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄

          <2011年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 马山县| 康乐县| 当涂县| 巴青县| 盐津县| 和政县| 祁门县| 河间市| 利川市| 墨江| 平遥县| 安化县| 阜康市| 固阳县| 无为县| 马鞍山市| 德安县| 蚌埠市| 嫩江县| 根河市| 乌兰县| 禄劝| 山阴县| 柯坪县| 瑞金市| 鄯善县| 阿鲁科尔沁旗| 綦江县| 榆树市| 宜兰县| 洪湖市| 通化县| 建始县| 原平市| 江西省| 澳门| 泗水县| 平谷区| 庄河市| 松江区| 垦利县|