測試人員必知必會經典性能面試題

" 閱讀本文大概耗時13分鐘 " 

1. 性能測試包含了哪些軟件測試(至少舉出3種)?

參考答案:負載測試;壓力測試;容量測試

負載測試(Load Testing):負載測試是一種主要爲了測試軟件系統是否達到需求文檔設計的目標,譬如軟件在一定時期內,最大支持多少併發用戶數,軟件請求出錯率等,測試的主要是軟件系統的性能。

壓力測試(Stress Testing):強度測試也就是壓力測試,壓力測試主要是爲了測試硬件系統是否達到需求文檔設計的性能目標,譬如在一定時期內,系統的cpu利用率,內存使用率,磁盤I/O吞吐率,網絡吞吐量等,壓力測試和負載測試最大的差別在於測試目的不同。

容量測試(Volume Testing):確定系統最大承受量,譬如系統最大用戶數,最大存儲量,最多處理的數據流量等。

或者在下面選擇幾項:

a. 併發測試 - 測試多用戶併發訪問同一個應用、模塊、數據時是否產生隱藏的併發問題

b. 基準測試 - 比較新的或未知測試對象與已知參照標準(如現有軟件或評測標準)的性能。

c. 爭用測試:- 覈實測試對象對於多個主角對相同資源(數據記錄、內存等)的請求的處理是否可以接受。

d. 性能配置 - 覈實在操作條件保持不變的情況下,測試對象在使用不同配置時其性能行爲的可接受性。

e. 負載測試- 覈實在保持配置不變的情況下,測試對象在不同操作條件(如不同用戶數、事務數等)下性能行爲的可接受性。

f. 強度測試- 覈實測試對象性能行爲在異常或極端條件(如資源減少或用戶數過多)之下的可接受性。

g. 容量測試- 覈實測試用戶同時使用軟件程序的最大數量

2. 請問什麼是性能測試、負載測試、壓力測試?

答:性能測試是通過自動化的測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試。負載測試、壓力測試參考答案如上題。

3. 在給定的測試環境下進行,考慮被測系統的業務壓力量和典型場景?

答:負載測試。

負載測試是用來測定系統飽和狀態、確定閥值。其特點有:

01.這種方法的目的是找到系統處理能力的極限;通過“檢測、加壓、閥值”手段找到如“響應時間不超過10秒”,“平均CPU利用率低於65%”等指標。

02.這種性能測試方法需要在給定的測試環境下進行,通常也需要考慮被測系統的業務壓力量和典型場景、另外HP Mercury LoadRuner在使用該方法進行“加壓”的時候必須選擇典型場景。

03.這種性能測試方法一般用來了解系統的性能容量,或者是配合性能調優的時候來使用。特別是該的Weblogic 和庫的性能調優。

4. 什麼時候可以開始執行性能測試?

答:在產品相對比較穩定,功能測試結束後。靈活性比較強。

5. 簡述性能測試的步驟。

答:熟悉應用

瞭解應用的架構、功能邏輯

測試需求:

1. 需要將開發給定的需求轉爲吞吐量和響應時間。

2. 根據測試目的,細化需求

測試準備:

測試準備包括測試客戶端機器準備、測試數據準備、測試腳本準備。

測試執行:

測試的執行中,需要監控測試客戶端和服務器性能,監控服務器端應用情況:

a.客戶端的系統資源(cpu、io、memory)情況

b. 服務端的系統資源(cpu、io、memory)情況

c. 服務器的jvm運行情況

d. 服務端的應用情況,看是否有異常

e. 響應時間、吞吐量等指標

f. 系統資源監控,linux下可以採用的工具有:vmstat、top、meminfo等。

g. JVM的監控,可以用jprofiler工具,linux下面的jmap、jhat等。

h. 響應時間、吞吐量等,由grinder提供。

上述這些信息,一般在測試結束後,均需要歸檔整理,已備後續詳細分析。

我們自己開發一套腳本,用於以固定的頻率獲取測試客戶端和服務器的vmstat和top輸出、grinder的log,並從中截取有用信息保存,用於事後分析。

每次測試運行完以後,肯定會增加很多數據,需要考慮本次執行對數據量的影響,如果數據量的變化對後續測試會有影響,則需要清理數據。

6. 你如何識別性能瓶頸?

答:RBI方法:重點測試“吞吐量”指標,因爲RBI認定80%的系統性能瓶頸由吞吐量造成。

按照網絡、硬件、數據庫、應用服務器、代碼的順序自上而下分析性能工具:IBM、HP、OpenSource工具都支持。需使用分析模塊、根據Weblogic、Oracle區別有專門的工具實現RBI。

7. 性能測試時,是不是必須進行參數化?爲什麼要創建參數?LoadRunner中如何創建參數?

答:是。模擬用戶真實的業務操作。創建參數列表,用參數替換固定的文本。

8. 你如何設計負載?標準是什麼?

答:負載測試計劃多少用戶數量、使用什麼類型的機器、以及在什麼環境下進行。

主要基於兩個重要的文檔,任務分佈圖和事務信息,任務分佈圖告訴我們在負載時間段內,某一個事務使用的用戶數,高峯使用率及低峯使用率均來自該文檔;事務信息告訴我們事務名及優先級,在設計場景時可以參考。

9.解釋5個常用的性能指標的名稱與具體含義。

答:響應時間、併發用戶數,吞吐量,性能計數器,TPS,HPS

響應時間:指的是“系統響應時間”定義爲應用系統從發出請求開始到客戶端接收到響應所消耗的時間。把它作爲用戶視角的軟件性能的主要體現。

最大併發用戶數:有兩種理解方式,一種是從業務的角度來模擬真實的用戶訪問,體現的是業務併發用戶數,指在同一時間段內訪問系統的用戶數量。

另一種是從服務器端承受的壓力來考慮,這裏的“併發用戶數”指的是同時向服務器端發出請求的客戶數,該概念一般結合併發測試(Concurrency Testing)使用,體現的是服務端承受的最大併發訪問數。

吞吐量:是指“單位時間內系統處理的客戶請求的數量”,直接體現軟件系統的性能承載能力。

性能計數器(Counter)是描述服務器或操作系統性能的一些數據指標。例如,對Windows 系統來說,使用內存數(Memory In Usage),進程時間(Total Process Time)等都是常見的計數器。

思考時間(Think Time),也被稱爲“休眠時間”,從業務的角度來說,這個時間指的是用戶在進行操作時,每個請求之間的間隔時間。

從自動化測試實現的角度來說,要真實地模擬用戶操作,就必須在測試腳本中讓各個操作之間等待一段時間,體現在腳本中,具體而言,就是在操作之間放置一個Think 的函數,使得腳本在執行兩個操作之間等待一段時間。

TPS:Transaction per second,每秒鐘系統能夠處理的交易或者事務的數量。它是衡量系統處理能力的重要指標。

點擊率:HPS,每秒鐘用戶向WEB服務器提交的HTTP請求數。

10. 描述不同的角色(用戶、產品開發人員、系統管理員)各自關注的軟件性能要點。

答:用戶:重點關注打開速度及響應時間

開發:重點關注響應時間和數據庫交互

管理員:重點關注用戶感受到的軟件性能;如何利用管理功能進行性能調優;如何利用其他軟硬件手段進行性能調優

11. 請分別針對性能測試、負載測試和壓力測試試舉一個簡單的例子?

答:性能測試例子:公司開發了一個小型項目管理系統,上線前需要做負載、壓力、大數據量、強度測試等。

負載測試:逐步加壓,從而得到“響應時間不超過10秒”,“服務器平均CPU利用率低於85%”等指標閥值。

壓力測試:逐步加壓,從而使“響應時間超過10秒”,“服務器平均CPU利用率高於90%”等指標來確定系統能承受的最大負載量。

12. 請問您是如何得到性能測試需求?怎樣針對需求設計、分析是否達到需求?

答:在查看需求文檔,從中提取性能測試需求,與用戶交流,瞭解實際使用情況。結合業務信息設計操作場景總結出需測試的性能關鍵指標。執行用例後根據提取關鍵性能指標來分析是否滿足性能需求。

THE END

題圖:本文來源於網絡,文章所包含的文字來源於原作者。如因內容或版權等問題,請聯繫Python測試社區進行刪除

最近接到很多私信,說以後儘量多出點試題着這樣的文章,最近小編也是一致在發現總結中,希望對大家有所幫助

[ 刷試題,在於積累,你悄悄來,請記得帶走一絲雲彩 ]

[ 微信搜索:" Python測試社區 "關注本公衆號,回覆“989”“python”領取4G資料 ] 

支持作者,可以將文章分享到朋友圈或點個在看,感謝大家的閱讀!Bey , 下期再見

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章