性能測試實際中如何進進行?概念

性能測試在軟件的質量保證中起着重要的作用,它包括的測試內容豐富多樣。

中國軟件評測中心將性能測試概括爲三個方面

 

應用在客戶端性能的測試、應用在網絡上性能的測試和應用在服務器端性能的測試。

通常情況下,三方面有效、合理的結合,可以達到對系統性能全面的分析和瓶頸的預測。

應用在客戶端性能測試的目的是考察客戶端應用的性能,測試的入口是客戶端。它主要包括併發性能測試、疲勞強度測試、大數據量測試和速度測試等,其中併發性能測試是重點

一,併發性能測試是重點,併發性能測試的過程是一個負載測試和壓力測試的過程,即逐漸增加負載,直到系統的瓶頸或者不能接收的性能點,通過綜合分析交易執行指標和資源監控指標來確定系統併發性能的過程。

二,負載測試(LoadTesting)是確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等來決定系統的性能。

        負載測試是一個分析軟件應用程序和支撐架構、模擬真實環境的使用,從而來確定能夠接收的性能過程。

         壓力測試(StressTesting)是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。

併發性能測試的目的主要體現在三個方面:

以真實的業務爲依據,選擇有代表性的、關鍵的業務操作設計測試案例,以評價系統的當前性能;

當擴展應用程序的功能或者新的應用程序將要被部署時,負載測試會幫助確定系統是否還能夠處理期望的用戶負載,以預測系統的未來性能;

通過模擬成百上千個用戶,重複執行和運行測試,可以確認性能瓶頸並優化和調整應用,目的在於尋找到瓶頸問題。

當一家企業自己組織力量或委託軟件公司代爲開發一套應用系統的時候,尤其是以後在生產環境中實際使用起來,用戶往往會產生疑問,這套系統能不能承受大量的併發用戶同時訪問?這類問題最常見於採用聯機事務處理(OLTP)方式數據庫應用、Web瀏覽和視頻點播等系統。

這種問題的解決要藉助於科學的軟件測試手段和先進的測試工具

舉例說明:電信計費軟件衆所周知,每月20日左右是市話交費的高峯期,全市幾千個收費網點同時啓動。收費過程一般分爲兩步,首先要根據用戶提出的電話號碼來查詢出其當月產生費用,然後收取現金並將此用戶修改爲已交費狀態。一個用戶看起來簡單的兩個步驟,但當成百上千的終端,同時執行這樣的操作時,情況就大不一樣了,如此衆多的交易同時發生,對應用程序本身、操作系統、中心數據庫服務器、中間件服務器、網絡設備的承受力都是一個嚴峻的考驗。

決策者不可能在發生問題後才考慮系統的承受力,預見軟件的併發承受力,這是在軟件測試階段就應該解決的問題。

大多數公司企業需要支持成百上千名用戶,各類應用環境以及由不同供應商提供的元件組裝起來的複雜產品,難以預知的用戶負載和愈來愈複雜的應用程序,使公司擔憂會發生投放性能差、用戶遭受反應慢、系統失靈等問題。其結果就是導致公司收益的損失。

如何模擬實際情況呢?

找若干臺電腦和同樣數目的操作人員在同一時刻進行操作,然後拿秒錶記錄下反應時間?這樣的手工作坊式的測試方法不切實際,且無法捕捉程序內部變化情況,這樣就需要壓力測試工具的輔助。

測試的基本策略是自動負載測試,通過在一臺或幾臺PC機上模擬成百或上千的虛擬用戶同時執行業務的情景,對應用程序進行測試,同時記錄下每一事務處理的時間、中間件服務器峯值數據、數據庫狀態等。

通過可重複的、真實的測試能夠徹底地度量應用的可擴展性和性能,確定問題所在以及優化系統性能。預先知道了系統的承受力,就爲最終用戶規劃整個運行環境的配置提供了有力的依據。

併發性能測試前的準備工作測試環境:

配置測試環境是測試實施的一個重要階段,測試環境的適合與否會嚴重影響測試結果的真實性和正確性。

測試環境包括硬件環境和軟件環境,硬件環境指測試必需的服務器、客戶端、網絡連接設備以及打印機/掃描儀等輔助硬件設備所構成的環境;軟件環境指被測軟件運行時的操作系統、數據庫及其他應用軟件構成的環境。

 

一個充分準備好的測試環境有三個優點:

一個穩定、可重複的測試環境,能夠保證測試結果的正確;保證達到測試執行的技術需求;保證得到正確的、可重複的以及易理解的測試結果。

測試工具:

併發性能測試是在客戶端執行的黑盒測試,一般不採用手工方式,而是利用工具採用自動化方式進行。成熟的併發性能測試工具有很多,選擇的依據主要是測試需求和性能價格比。

著名的併發性能測試工具有QALoad、LoadRunner、BenchmarkFactoryWebstress等。

這些測試工具都是自動化負載測試工具,通過可重複的、真實的測試,能夠徹底地度量應用的可擴展性和性能,可以在整個開發生命週期、跨越多種平臺、自動執行測試任務,可以模擬成百上千的用戶併發執行關鍵業務而完成對應用程序的測試。

測試數據:在初始的測試環境中需要輸入一些適當的測試數據,目的是識別數據狀態並且驗證用於測試的測試案例,在正式的測試開始以前對測試案例進行調試,將正式測試開始時的錯誤降到最低。在測試進行到關鍵過程環節時,非常有必要進行數據狀態的備份。製造初始數據意味着將合適的數據存儲下來,需要的時候恢復它,初始數據提供了一個基線用來評估測試執行的結果。

在測試正式執行時,還需要準備業務測試數據,比如測試併發查詢業務,那麼要求對應的數據庫和表中有相當的數據量以及數據的種類應能覆蓋全部業務。

模擬真實環境測試,有些軟件,特別是面向大衆的商品化軟件,在測試時常常需要考察在真實環境中的表現。如測試殺毒軟件的掃描速度時,硬盤上佈置的不同類型文件的比例要儘量接近真實環境,這樣測試出來的數據纔有實際意義。併發性能測試的種類與指標併發性能測試的種類取決於併發性能測試工具監控的對象,以QALoad自動化負載測試工具爲例。

軟件針對各種測試目標提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、JavaScript等不同的監控對象,支持Windows和UNIX測試環境。最關鍵的仍然是測試過程中對監控對象的靈活應用,例如三層結構的運行模式廣泛使用,對中間件的併發性能測試作爲問題被提到議事日程上來,許多系統都採用了國產中間件,選擇JavaScript監控對象,手工編寫腳本,可以達到測試目的。

採用自動化負載測試工具執行併發性能測試,基本遵循的測試過程有:

測試需求與測試內容,測試案例制定,測試環境準備,測試腳本錄製、編寫與調試,腳本分配、回放配置與加載策略,測試執行跟蹤,結果分析與定位問題所在,測試報告與測試評估。

併發性能測試監控的對象不同,測試的主要指標也不相同,主要的測試指標包括交易處理性能指標和UNIX資源監控。

其中,交易處理性能指標包括交易結果、每分鐘交易數、交易響應時間(Min:最小服務器響應時間;

Mean:平均服務器響應時間;

Max:最大服務器響應時間;StdDev:事務處理服務器響應的偏差,值越大,偏差越大;

Median:中值響應時間;90%:90%事務處理的服務器響應時間)、虛擬併發用戶數。

應用實例:“新華社多媒體數據庫V1.0”性能測試中國軟件評測中心(CSTC)根據新華社技術局提出的《多媒體數據庫(一期)性能測試需求》和GB/T17544《軟件包質量要求和測試》的國家標準,使用工業標準級負載測試工具對新華社使用的“新華社多媒體數據庫V1.0”進行了性能測試。

性能測試的目的,是模擬多用戶併發訪問新華社多媒體數據庫,執行關鍵檢索業務,分析系統性能。性能測試的重點是針對系統併發壓力負載較大的主要檢索業務,進行併發測試和疲勞測試,系統採用B/S運行模式。併發測試設計了特定時間段內分別在中文庫、英文庫、圖片庫中進行單檢索詞、多檢索詞以及變檢索式、混合檢索業務等併發測試案例。疲勞測試案例爲在中文庫中併發用戶數200,進行測試周期約8小時的單檢索詞檢索。

在進行併發和疲勞測試的同時,監測的測試指標包括交易處理性能以及UNIX(Linux)、Oracle、Apache資源等。

測試結論:

在新華社機房測試環境和內網測試環境中,100M帶寬情況下,針對規定的各併發測試案例,系統能夠承受併發用戶數爲200的負載壓力,最大交易數/分鐘達到78.73,運行基本穩定,但隨着負載壓力增大,系統性能有所衰減。系統能夠承受200併發用戶數持續週期約8小時的疲勞壓力,基本能夠穩定運行。通過對系統UNIX(Linux)、Oracle和Apache資源的監控,系統資源能夠滿足上述併發和疲勞性能需求,且系統硬件資源尚有較大利用餘地。當併發用戶數超過200時,監控到HTTP500、connect和超時錯誤,且Web服務器報內存溢出錯誤,系統應進一步提高性能,以支持更大併發用戶數。建議進一步優化軟件系統,充分利用硬件資源,縮短交易響應時間。疲勞強度與大數據量測試疲勞測試是採用系統穩定運行情況下能夠支持的最大併發用戶數,持續執行一段時間業務,通過綜合分析交易執行指標和資源監控指標來確定系統處理最大工作量強度性能的過程。疲勞強度測試可以採用工具自動化的方式進行測試,也可以手工編寫程序測試,其中後者佔的比例較大。

一般情況下以服務器能夠正常穩定響應請求的最大併發用戶數進行一定時間的疲勞測試,獲取交易執行指標數據和系統資源監控數據。如出現錯誤導致測試不能成功執行,則及時調整測試指標,例如降低用戶數、縮短測試周期等。還有一種情況的疲勞測試是對當前系統性能的評估,用系統正常業務情況下併發用戶數爲基礎,進行一定時間的疲勞測試。大數據量測試可以分爲兩種類型:針對某些系統存儲、傳輸、統計、查詢等業務進行大數據量的獨立數據量測試;與壓力性能測試、負載性能測試、疲勞性能測試相結合的綜合數據量測試方案。大數據量測試的關鍵是測試數據的準備,可以依靠工具準備測試數據。

速度測試主要是針對關鍵有速度要求的業務進行手工測速度,可以在多次測試的基礎上求平均值,可以和工具測得的響應時間等指標做對比分析。應用在網絡上性能的測試重點是利用成熟先進的自動化技術進行網絡應用性能監控、網絡應用性能分析和網絡預測。

網絡應用性能分析網絡應用性能分析的目的是準確展示網絡帶寬、延遲、負載和TCP端口的變化是如何影響用戶的響應時間的。利用網絡應用性能分析工具,例如ApplicationExpert,能夠發現應用的瓶頸,我們可知應用在網絡上運行時在每個階段發生的應用行爲,在應用線程級分析應用的問題。可以解決多種問題:客戶端是否對數據庫服務器運行了不必要的請求?當服務器從客戶端接受了一個查詢,應用服務器是否花費了不可接受的時間聯繫數據庫服務器?在投產前預測應用的響應時間;利用ApplicationExpert調整應用在廣域網上的性能;ApplicationExpert能夠讓你快速、容易地仿真應用性能,根據最終用戶在不同網絡配置環境下的響應時間,用戶可以根據自己的條件決定應用投產的網絡環境。網絡應用性能監控在系統試運行之後,需要及時準確地瞭解網絡上正在發生什麼事情;什麼應用在運行,如何運行;多少PC正在訪問LAN或WAN;哪些應用程序導致系統瓶頸或資源競爭,這時網絡應用性能監控以及網絡資源管理對系統的正常穩定運行是非常關鍵的。利用網絡應用性能監控工具,可以達到事半功倍的效果,在這方面我們可以提供的工具是NetworkVantage。通俗地講,它主要用來分析關鍵應用程序的性能,定位問題的根源是在客戶端、服務器、應用程序還是網絡。

在大多數情況下用戶較關心的問題還有哪些應用程序佔用大量帶寬,哪些用戶產生了最大的網絡流量,這個工具同樣能滿足要求。網絡預測考慮到系統未來發展的擴展性,預測網絡流量的變化、網絡結構的變化對用戶系統的影響非常重要。根據規劃數據進行預測並及時提供網絡性能預測數據。

我們利用網絡預測分析容量規劃工具PREDICTOR可以作到:

設置服務水平、完成日網絡容量規劃、離線測試網絡、網絡失效和容量極限分析、完成日常故障診斷、預測網絡設備遷移和網絡設備升級對整個網絡的影響。

從網絡管理軟件獲取網絡拓撲結構、從現有的流量監控軟件獲取流量信息(若沒有這類軟件可人工生成流量數據),這樣可以得到現有網絡的基本結構。在基本結構的基礎上,可根據網絡結構的變化、網絡流量的變化生成報告和圖表,說明這些變化是如何影響網絡性能的。

PREDICTOR提供如下信息:

根據預測的結果幫助用戶及時升級網絡,避免因關鍵設備超過利用閥值導致系統性能下降;哪個網絡設備需要升級,這樣可減少網絡延遲、避免網絡瓶頸;根據預測的結果避免不必要的網絡升級。

對於應用在服務器上性能的測試,可以採用工具監控,也可以使用系統本身的監控命令,例如Tuxedo中可以使用Top命令監控資源使用情況。

實施測試的目的是實現服務器設備、服務器操作系統、數據庫系統、應用在服務器上性能的全面監控,測試原理如下圖。

 

UNIX資源監控指標和描述監控指標描述平均負載系統正常狀態下,最後60秒同步進程的平均個數衝突率。

在以太網上監測到的每秒衝突數進程/線程交換率進程和線程之間,每秒交換次數/CPU利用率/CPU佔用率(%)/磁盤交換率/磁盤交換速率/接收包錯誤率。

接收以太網數據包時每秒錯誤數,包輸入率,每秒輸入的以太網數據包數目,中斷速率,CPU每秒處理的中斷數,輸出包錯誤率,發送以太網數據包時每秒錯誤數,包輸入率,每秒輸出的以太網數據包數目,讀入內存頁速率,物理內存中每秒讀入內存頁的數目,寫出內存頁速率,每秒從物理內存中寫到頁文件中的內存頁數目,或者從物理內存中刪掉的內存頁數目,內存頁交換速率,每秒寫入內存頁和從物理內存中讀出頁的個數,進程入交換率,交換區輸入的進程數目,進程出交換率交換區輸出的進程數,目系統CPU利用率,系統的CPU佔用率(%),用戶CPU利用率,用戶模式下的CPU佔用率(%),磁盤阻塞,磁盤每秒阻塞的字節數等

發佈了42 篇原創文章 · 獲贊 86 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章