?我是一下下面幾個方面來理解的:
1.秒的性能對于顧客的意義?
2.性能測試的重要意義
3.什么是軟件的性能?
4.軟件的性能測試是什么?
5.功能測試和性能測試對比?
6.項目組不同角色眼中的軟件性能?
7.性能測試的目的是什么?
8.性能測試分類是什么?
9.性能測試指標是什么?
10.性能測試基本流程是什么?
11.性能測試的方法有哪些?
12.影響軟件性能的因素有哪些?
?
1.秒的性能對于顧客的意義?
根據2008年Aberdeen Group的研究報告,對于Web網站,1秒的頁面加載延遲相當于少了11%的PV(page view),相當于降低了16%的顧客滿意度。如果從金錢的角度計算,就意味著:如果一個網站每天掙10萬元,那么一年下來,由于頁面加載速度比競爭對手慢1秒,可能導致總共損失25萬元的銷售額。
Compuware公司分析了超過150個網站和150萬個瀏覽頁面,發現頁面響應時間從2秒增長到10秒,會導致38%的頁面瀏覽放棄率。
由此可見,網站性能與業務目標有著直接的關系,對網站進行負載測試非常重要。
? 再結合我的實際體驗,啟動一個軟件如果很卡,就不太想用了,如果在中間使用時再很卡時,下次再想使用的欲望就會強烈減少,甚至會產生排斥心理。
?
2.性能測試的重要意義?
?隨著社會的發展,科技的進步,信息技術的飛速發展,計算機的普及,軟件產品已經應用到社會的各個行業領域,加上網絡的發展,信息的共享性等,人們對計算機及網絡的依賴性越來越大。軟件產品的使用者對高質量、高效率的工作方式的要求越來越高,因此對于工作和生活中息息相關的IT系統服務,他們也要求提供更快、更高效的服務品質。
?網絡的發展,讓人們對網絡的依賴越來越大,對外界新事物的好奇心等也越來越強烈,成千上萬的用戶在龐大的網絡系統中游轉。網絡時代的到來,也給提供服務的系統帶來嚴重的系統負荷,這就是系統網絡發展中最明顯的特征:"高并發"、"數據集中"。
?數據越來越集中于后臺系統服務器中,眾多系統同時為成千上萬的網絡用戶提供服務,如銀行、電信、社交網站等公司的軟件系統隨處可見,影響著我們生活的方方面面。隨著各個企業的業務發展、用戶訪問量的增加,其服務系統承載的負荷也會隨著增加,系統性能的好壞將嚴重影響企業的利益,因此對于IT服務系統的性能測試與優化也越來越受業界的重視。
? ?目前典型的企業信息服務系統的架構大致如圖1.1所示。
?一般是由客戶端、網絡、防火墻、負載均衡服務器(硬件如F5、軟件Apache等)、Web服務器、應用服務器(中間件WebLogic、Tomcat等)、數據庫服務器等各個環節組成。
?在交付給客戶上線使用之前,業務系統的每個環節都要進行性能測試和優化,才能保證上線后的質量。每個環節都要有專業人士協助性能的診斷和優化,這些專業人士包括:性能測試工程師、系統管理員、網絡工程師、DBA、程序設計人員等。
?IT服務系統的性能測試與優化是一項復雜、富有挑戰性的工作,對于一個專業的測試人員而言,性能優化技術的學習和研究有利于性能測試工作的順利、深入開展。
?
3.什么是軟件的性能?
?軟件性能是軟件的一種非功能特性,它關注的不是軟件是否能夠完成特定的功能,而是在完成該功能時展示出來的及時性。由于感受軟件性能的主體是人,不同的人對于同樣的軟件能有不同的主觀感受,而且不同的人對于軟件性能關心的視角也不同。由于目前網絡應用非常普遍,因此下面將介紹網絡應用軟件性能的指標和軟件性能的視角。
?
4.軟件的性能測試是什么?
?百度詞條定義:性能測試是通過自動化的測試工具模擬多種正常峰值及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬于性能測試。通過負載測試,確定在各種工作負載下系統的性能,目標是當負載逐漸增加時,測試系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統提供的最大服務級別的測試。
?維基百科定義:在計算機領域,軟件性能測試被用來判斷計算機、網絡、軟件程序或者驅動的速度和效率。這一過程會在同一實驗環境下進行大量測試,以便于衡量系統功能的相應時長或者MIPS(每秒執行指令數目)等指標,其他系統特性,如可靠性、可量測試、互用性等,也可以用性能測試來衡量,性能測試通常與壓力測試一起進行。
?
我理解:1.性能測試需要圍繞影響軟件幾個因素,并結合客戶提出的一些性能要求,來展開性能測試,
2.還有一些在特定環境下的性能測試,如:集群環境,網絡不穩,電源不穩定下,等等是否達到一個客戶需求的一個指標。
?
5.功能測試和性能測試對比?
?功能測試主要根據產品業務需求、產品行業特征、模擬用戶操作方式來測試一個產品的特性以確定它們是否滿足用戶需求。
?性能測試則是通過某種特定的方式對被測試系統按照一定的測試策略進行施壓,獲取該系統的響應時間、運行效率、資源利用情況等各項性能指標,來評價系統是否滿足用戶性能需求的過程。
通俗地說,功能測試用于確保軟件系統做了正確的事情,性能測試則用于確保軟件系統快速地完成了任務。
所以筆者認為:可以不做自動化,但是在保證功能的前提下,下來就是要考慮性能了,因為面對挑剔的使用群體,我們要做到快,準,狠。
?
6.項目組不同角色眼中的軟件性能?
1、系統管理員眼中的軟件性能
系統管理員作為軟件系統的運維人員,主要關注服務器的資源使用狀況、系統的擴展性、系統支持的最大用戶量、系統穩定性,以及系統可能出現的瓶頸、出現異常的情況下如何處理等。
2、研發人員眼中的軟件性能
作為研發人員,他們會更關注軟件系統架構設計的合理性、數據庫的設計是否存在問題、代碼是否存在性能方面問題、內存使用方式是否正確、線程同步方式是否合理、是否存在不合理的資源競爭等。
3、測試人員眼中的軟件性能
測試人員是軟件性能質量的把關者,在軟件性能生命周期中占據至關重要的位置,軟件性能測試工程師要對性能問題進行監控、分析及模擬實際使用過程中所出現的性能問題。還要跟各個角色做好溝通工作,對測試出的各種性能問題,要提供充分有力的數據,為后續的分析和定位性能問題、性能優化工作做好充分的準備。
?
7.性能測試的目的是什么?
性能測試目的驗證軟件系統是否能夠達到用戶提供的性能指標,同時發現存在的性能瓶頸,最好起到優化的目的。
1、評估系統的能力:主要從測試結果中的負荷和響應時間,并發用戶等數據驗證系統的各項指標達到用戶需求
2、識別體系中的弱點:根據測試過程中的負荷或代碼走差方式找出系統的極端或繁瑣的代碼邏輯,從而找到體系中的瓶頸或薄弱地方
3、系統調優:重復進行性能測試,驗證系統活動是否達到預期結果,從而進行改進
4、檢測軟件中的問題:主要查找一些隱含的問題或者硬件引發的問題。主要方法大量的重復測試驗證
5、驗證穩定性和可靠性:不但要驗證系統的穩定性和可靠性,還要驗證人為因素的穩定性。
?
8.性能測試分類是什么?
1、負載測試::閑時負載量。通過測試系統在資源超負荷情況下的表現來發現設計上的錯誤或驗證系統的負載能力。目標是確定并確保系統在超出最大預期工作量的情況下仍能正常運行。還用來評估性能特征,如響應時長、事務處理速度等
2、壓力測試:極限負載量。對系統不斷施加壓力的測試,判斷系統能提供的最大服務級別。例如測試一個web站點,經過不斷加壓判斷出達到多少用戶并發的時候服務響應失效。
3、容量測試:支持的最大數量
?
9.性能測試指標是什么?
系統指標:
1、并發用戶數:某一物理時刻同時向系統提交請求的用戶數
2、平均響應時間:系統處理事務的響應時間的平均值。事務的響應時間是從客戶端提交訪問請求到客戶端接收到服務器響應所消耗的時間。對于系統快速響應類頁面,一般響應時間小于2秒
3、事務成功率:性能測試中,定義事務用于度量一個或者多個業務流程的性能指標,如用戶登錄、保存訂單、提交訂單操作均可定義為事務
4、平均響應時間:對于客戶端用戶來說,最直觀的體驗就是訪問該頁面快或者慢,即響應時間的長短。比如在持續并發性能測試過程中,客戶感知訪問應用很慢,監控到的平均響應時間也逐漸變長,這時就需要先借助于監控到的資源指標
資源指標:
1、CPU使用率:指用戶進程與系統進程消耗的CPU時間百分比,長時間情況下,一般可接受上限不超過85%
2、內存利用率:內存利用率=(1-空閑內存/總內存大小)*100%,一般至少有10%可用內存,內存使用率可接受上限為85%
3、磁盤I/O: 磁盤主要用于存取數據,因此當說到IO操作的時候,就會存在兩種相對應的操作,存數據的時候對應的是寫IO操作,取數據的時候對應的是讀IO操作,一般使用% Disk Time(磁盤用于讀寫操作所占用的時間百分比)度量磁盤讀寫性能
4、網絡帶寬:一般使用計數器Bytes Total/sec來度量,Bytes Total/sec表示為發送和接收字節的速率,包括幀字符在內。判斷網絡連接速度是否是瓶頸,可以用該計數器的值和目前網絡的帶寬比較
?
10.性能測試基本流程是什么?
1、確性能測試需求
2、制定性能測試方案
重點描述如何進行性能測試,和功能測試方案基本一致,但是必須明確關鍵功能的相應時長和用戶數,例如查詢功能平均使用次數xx,平均用戶數xx,高峰段用戶數xx,平均相應小于xx秒,可接受最長響應時長小于xx秒,使用時間段8點到12點
3、編寫性能測試案例
和功能測試用例基本一致
4、執行性能測試案例
5、分析結果
6、生成性能測試報告
測試報告盡量寫的非專業人士也可以讀懂。主要的部分要有測試基本信息、測試環境、執行情況、結果分析、總結說明。還可以給出一些建議方案
?
11.性能測試的方法有哪些?
1.使用工具:jmeter,.Loadrunner11(適合做大并發)
2.性能測試的幾種方法后面詳細寫出來。
?
12.影響軟件性能的因素有哪些?
? 在下面中講到影響軟件性能的因素(二)。
?部分摘自:什么是性能測試(二)
?
?