面試課程__性能測試講解(5.1)
一、你做過性能測試嗎?
方法1:做過
方法2:在公司性能是專門性能小組做的,但是我也會做
二、性能測試有哪些類型?
(1)壓力測試(破壞性測試)
壓力測試是系統在一定飽和狀態下,例如:cpu、內存、磁盤io在飽和使用情況下,不斷給系統施加壓力,看系統處理能力,以及系統是否會出現錯誤;
(2)負載測試
負載測試是對測試系統不斷增加壓力,直至性能指標超過預期或者某項資源使用達到飽和狀態。
(3)穩定性測試
穩定測試就給系統施加一定壓力,持續運行一段時間(7*24),觀察系統能否穩定運行。
(4)基準測試
基準測試在給系統施加較低壓力時,查看系統的運行狀況并記錄相關數作為基礎參考 。
(5)并發測試
并發測試是指模擬多用戶并發訪問同一個應用,模塊或者數據記錄時可能發生的性能問題。(聚合點)
三、性能測試你使用什么工具做的?
(1)jmeter 開源、免費、安裝方便
(2)loadrunner 收費、專業、安裝軟件大(4g多)
四、性能測試流程?
答案:
1)需求的分析
2)性能計劃的編寫
3)性能場景的設計
4)腳本的開發(錄制腳本)1、自己寫 2、通過錄制(a、badboy b、反向代理錄制代理腳本)
5)性能環境和數據的準備
6)性能的執行(jmeter)
7)性能結果分析
8)性能報告
9)性能調優
五、性能測試你關注哪些指標?===》sir__性能指標___歸納、 性能插件詳解:sir__性能指標詳解
答案1:
軟件指標:響應時間、錯誤率、吞吐量、tps、并發數、中位數、hps、事務每秒數、成功率、
硬件指標:cpu、內存、硬盤、網絡i/o ,
軟件指標:
響應時間:對請求作出響應所需要的時間
錯誤率: 經系統處理的事務出現錯誤的概率,對應著實際用戶使用系統功能失敗的情況。理想情況下錯誤率應保持極低水平。
吞吐量:單位時間內處理的客戶端請求數量
tps(事務每秒數):在每秒時間內系統可處理完畢的事務數。TPS很大程度體現系統性能能力。
并發數:測試時同時系統發出事務請求的數量,并發線程數用以模擬同時與系統建立連接的用戶。 并發是指多個用戶在同一時期內進行相同的事務處理或操作。絕對并發是指同一時刻(即同一時間點)并發用戶對服務器同時發送請求。相對并發是指一段時間內(即同一時間區間)并發用戶對服務器發送請求
hps:一秒鐘的時間內用戶對Web頁面的鏈接、提交按鈕等點擊總和
事務成功率
硬件指標:
cpu:一般不超過80%
內存:一般要小于70%與cpu溝通的橋梁,計算機中所有程序的運行都在內存中進行,內存分為物理內存、頁面交換(Paging),SWAP內存(虛擬內存)
磁盤I/O:一般不超過30%,磁盤吞吐量,指單位時間內通過磁盤的數據量。主要關注磁盤的繁忙率,如果高于70%,則磁盤瓶頸
網絡I/O:一般不超過%30的帶寬、網絡吞吐量,指單位時間內通過網絡的數據量,當吞吐量大于網路設備或鏈路最大傳輸能力,即帶寬時,則應該考慮升級網絡設備或者增加帶寬
(1)tps計算 :

這3個個公式都是對的
第1個公式計算的是絕對的TPS,也是瞬間TPS,jmeter中的throughput是吞吐量是平均TPS,這個絕對TPS指的是某個點的值
第2個公式計算的是業務的TPS,指的是每天80%的業務量都是發生在20%的時間內,列如當前線上APP1.0試?系統主要為查詢類交易,交易占?40%,系統?產交易量統計為1個?約20W筆,假設APP2.0系統上線后業務量激增到每?查詢類20W,則每?總交易量T達到:
T = 20W/40%=500000筆/?
系統處理能?TPS推導:APP2.0上線后交易量最?500000筆/?,系統晚間?乎?交易量,按2:8原則推算,則(50000080%)/(820%3600)=69.4筆/秒,取整為70筆/秒,每年按業務量增長50%計算,則?年后系統處理能?指標約等于
70+7050%=105筆/秒。
第3個公式計算和第2個有點類似,但是加了一個冗余系數這個是為了后續業務增長做容量規劃使用的,比如現在的系統需要支持105筆/秒,后續隨著業務增加可以擴個2-5倍。
六、性能測試中遇到的問題?====》sir__性能出現問題___歸納
(1)問題1:提現申請接口3-5個線程并發時,容易引起死鎖現象,經優化后,Tps達到224左右,且沒有死鎖現象出現;

(2)問題2:賬單查詢接口,優化索引前,響應時間為8s左右,Tps為11;
優化索引后,響應時間縮短為0.15秒左右,Tps升為560左右

七、性能測試壓測50怎么做的?
案例1:
在工作中我測試會對單個接口進行壓測或一個性能場景進行壓測;首先會分析需求,根據需求分析接口和場景做性能;設計性能場景;根據性能場景使用badboy(或反向代理錄制腳本)錄制腳本;將錄制的腳本進行參數化、并且調通;在測試計劃中設置壓測用戶數,設置壓測時間,在添加查看結果樹、聚合報告、tps插件、hps插件、混合圖標、圖像報告、表單報告等插件,在服務器中也可以使用nmon來采集硬件指標:cpu、內存、硬盤、網絡I/等,或top命令去監控,在點擊執行;然后就能檢測到性能參數;在收集的實際性能指標進行分析和預期指標進行對比。對比后分析性能問題,給出性能報告;最后在進行性能調優。
案例2:
性能測試或者壓力測試你是怎么做的?
我們產品經理首先會評審性能需求,產品經理把需求分析過后,我們就根據需求做性能場景的設計,比如我就拿登錄-貸款資料錄入-初審-回退-重新提交-復審-簽約接口這樣的一個場景,和您這邊大概說一下:
首先我會設計好這個性能測試用例之后,然后接著在Jmeter里面開始組建接口,把接口請求組建好之后,然后再添加吞吐量定時器,再添加TPS插件,HPS插件,以及混合圖表,查看結果樹,聚合報告,以及對應的一個并發線程數比如50,然后選擇壓測10分鐘,然后就開始點擊運行,進行壓測,在壓測過程當中,我一般會通過混合圖表去看當負載不斷升高的時候,也就是我的并發線程數,它負載升高的時候我的接口的響應時間跟我的TPS之間的一個曲線變化,當我的TPS到達最高點,響應時間開始急劇上升的時候,這個時候一般就會出現一些捌點或瓶頸點,那我們去看一下它后續的一個曲線變化是怎么樣的,后續如果TPS沒有很快的急劇上升而是平緩的運行,我們這個時候就會去看它的、監控它的TPS是否符合我們原來設定的那個TPS、因為之前我們計算得出來的TPS需要高于105筆/秒,但我壓的時候平均都能達到300多TPS,TPS這塊就是符合需求的,但是只關注這個標指標還不行,還需要關注這個接口它的平均響應時間是不是在3秒鐘之內。0到1秒一般是比較優秀,說明這個接口響應時間必較快速,1到3秒合格,超過了3秒我這邊就會調整并發或者rps并且重新去壓,還有就是錯誤率。我們之前的錯誤率指標需要低于0.1%,如果錯誤大于了0.1%此時說明接口有很多的報錯,也是不符合性能要求的, 直到我們壓完之后如果TPS達標,接口平均響應時間達標,錯誤率達標之后。
我們還需要在服務器端用top和iostat和dstat命令去監控它的cpu和內存,如果CPU和內存的使用率都能低于70%的話那就說明沒問題,我會去輸出性能測試報告,然后再發送報告給到我整個項目組。
八、性能預期指標:

九、壓測實際結果:

十、接口調用統計信息
1.1.1 用戶激活狀態接口:200線程并發執行,Tps為570,響應時間為218ms
1.1.2 通用對外白名單查詢接口:200線程并發執行,TPS為450,響應時間為6ms
1.1.3 提現申請20線程并發執行,Tps為224,響應時間為66ms
1.1.4 通用對外福貸主狀態查詢:200線程并發執行,Tps為485左右,響應時間為345ms
1.1.5 信貸系統查重接口200線程并發執行,Tps為1293左右,響應時間平均11ms
1.1.6 在途申請查詢接口:200線程并發執行,Tps為960左右,響應時間平均143ms
1.1.7 額度查詢接口:200線程并發執行,Tps為960左右,響應時間平均130ms
1.1.8 日利率查詢:200線程并發執行,Tps為1008左右,響應時間平均38ms
1.1.9 賬單查詢接口:50線程并發執行,Tps在570左右,響應時間平均97ms
十一、性能測試報告包含哪些內容?
1.測試背景
2.測試目的
3.測試范圍
4.測試環境
5.系統調用鏈路
6.壓測指標
7.測試結果
8.問題列表
9.性能調優方案、
=======================================
面試題:
1、你會性能測試嗎?
2、你是如何做性能測試的?(性能測試流程)
3、性能測試你關注性能哪些性能指標?
4、性能測試中遇到什么問題?什么原因引起?如何解決?
5、性能測試報告包含哪些內容?
6、結合你的項目中一個接口或一個場景講下你做過的性能測試的具體數據?
========================================================
1、你做過性能測試嗎?
2、你用什么做性能測試?
3、具體講下你如何進行性能測試?
4、性能測試在什么階段開始做的?
5、性能測試有遇到什么問題
6、你關注的性能指標有那些?
7、性能測試有那些類型?
8、為什么要做性能測試?
9、性能測試的流程?
10、性能調優有做過嗎?
11、如何識別性能的瓶頸?
12、性能測試報告包含那些內容
13、性能測試數據?
14 、性能是在什么環境測試?如何模擬用戶數嗯?
15、什么叫吞吐量?吞吐量如何計算?
16、性能測試需求哪里來的?
17、中間件?
18、LaodRunner 有用過嗎?
19、什么叫tps,如何計算?
20、性能測試有遇到報錯的語句?
21、你如何去排查性能問題?
22、線程和進程有了解嗎?他們之間的關系和區別?
23、性能測試壓力上不去的原因有那些
24、性能的硬件指標如何測試?
25、分布式性能測試有了解嗎?

浙公網安備 33010602011771號