性能測試面試題一


 

 1、你們怎么開展性能測試的?

答: 需求確認-> 測試方案->准備環境(硬件,軟件)->測試工具選擇->測試數據准備->腳本錄制開發->系統調優->測試報告

2、性能測試流程
答:獲取測試需求->測試架構的調研、業務模型調研、確定需求->測試計划(屬於部門老大工作)->測試方案設計->環境的搭建->測試用例設計->測試數據准備->測試環境試運行->測試腳本開發->創建模型(場景)->執行場景(此過程中,需監控調試)->測試結果分析->問題反饋(相應的研發人員處理問題)->再次測試->最終報告

3、如何進行需求分析的,數據模型、業務模型、測試模型

答:

1)數據模型:
2)業務模型:是實際環境中,用戶操作的業務量以及各個業務之間的比例,能真實的反應實際環境中系統的負載情況;一個系統可能會有幾十個業務,我們測試過程中要重點關注占用總業務量百分之八十以上的幾個業務場景;關於業務比例情況,如果是一個全新的系統,需要進行調研;如果是一個已上線的系統或者類似系統,我們可以對后台特殊交易日的歷史數據進行統計分析,如取一個月、一個季度或者一年的數據,統計出平均值和峰值的業務量以及各業務之間比例。
3)測試模型是以業務模型為基礎,根據測試目標不同和業務模型進行參考比對,作為數據依據;在模擬實際真實用戶場景時,測試模型要盡量接近業務模型。

4、如果沒有明確需求怎么收集性能測試需求數據
答:客戶沒有給出相關性能指標或性能指標不明確,①.若業務屬於已運營業務,已有歷史數據,利用歷史數據分析,得出指標;②若業務屬於新業務,沒有歷史數據,可以參考同行相關業務數據進行分析,得出指標;③.若此業務屬於新興行業業務,以往沒有同類業務的數據,只有憑借經驗以及系統類型進行分析,得出指標了
5、實際的數據量是多少,怎么推算出來並發用戶數的
答:推算用戶數,請參考我的另一篇文章,鏈接地址: http://blog.csdn.net/qq_23101033/article/details/74977874
6、性能指標有哪些,如何確定性能指標?
答:性能指標有:
       ①資源指標:cpu、內存、io、網絡帶寬
     ②系統指標:並發用戶數、響應時間、事物成功率、超時錯誤率
用該計數器的值和目前網絡的帶寬比較。
      系統指標:並發用戶數通過 
7、性能測試方案有那些內容,如何寫性能測試方案
答:項目的簡要說明、項目系統結構、項目的業務結構、以及項目的性能需求、測試環境數據以及測試策略方法、測試案例、測試人員進度安排以及測試風險預估等等。
一般公司都有自己的測試方案模板,直接使用就行,如果是新項目,可以找一些類似項目的模板,根據自己公司項目,做一些改動,從而完成適合自己項目的測試方案
8、性能測試策略如何確定的,你們公司都使用什么測試策略?
具體的測試策略要根據具體的業務去確定,比如我之前遇的一個項目
9、linux系統常用監控命令
答;(1)監控CPU:
java架構:
vmstat->top(查看使用cpu較高的進程)->pidstat(查看哪個線程消耗了,也可以使用pidstat -p 10846 -u -d -t -w -h 1 1000)、或者使用top -H -p 進程號->jstack(做thread dump,例如:jstack -l 10846>10846.threadump)->查看nid(nid指native ID 對應系統的tid,但tid顯示的10進制,nid顯示的是16進制)->printf %x'\n' 10861->轉換后的結果為2a6d->對應到threaddump文件中,查到nid在哪一行,從而確定代碼的哪一行對cpu的使用比較高
C/C++架構:
top->top -H -p 進程號 (查看線程狀態)->gstack 進程號、或者pstack 進程號(生成線程堆棧)
 
(2)監控IO
vmstat  3 5 (3代表每3秒顯示一次、5代表總共顯示5次)->iostat -xm 3(-x顯示和io相關的擴展數據、-m磁盤讀寫速度單位為MB),可以查看系統磁盤的讀寫量及cpu占用率)->iotop(定位到什么進程下的程序在作祟)
 
(3)監控網絡
iftop工具
 
 
10、top命令中load average數據代表什么意思
答:顯示的是最近1分鍾、5分鍾和15分鍾的系統平均負載。數據是每隔5秒鍾檢查一次活躍的進程數,然后根據這個數值算出來的。如果這個數除以CPU 的數目,結果高於5的時候就表明系統在超負荷運轉了。
11、了解jvm嗎?jvm原理是怎么樣的
答:JVM是Java Virtual Machine(Java虛擬機)的縮寫,說到jvm,對我們性能測試人員最先想到的就是jvm內存管理和垃圾回收。
        JVM棧:由堆、棧、本地方法棧、方法區等部分組成
堆:通過new創建的對象的內存都在堆中分配,堆的大小可以通過-Xmx和-Xms來控制;堆的組成:新生代和舊生代
新生代:新建的對象都是用新生代分配內存,Eden空間不足的時候,會把存活的對象轉移到Survivor中,
新生代大小可以由-Xmn來控制,也可以用-XX:SurvivorRatio來控制Eden和Survivor的比例Eden區和Survivor區組成,
Survivor:From Space和To Space組成
舊生代:用於存放新生代中經過多次垃圾回收仍然存活的對象
持久帶:實現方法區,主要存放所有已加載的類信息,方法信息,常量池等等,可通過-XX:PermSize和-XX:MaxPermSize來指定持久帶初始
化值和最大值
JVM常見配置:
-Xmx:最大堆內存
        -Xms:初始時堆內存
   -XX:NewSize=n:設置年輕代大小
-XX:NewRatio=n:設置年老代和年輕代的比值
-XX:MaxPermSize=n:設置持久代大小
jvm內存調優:
 對JVM內存的系統級的調優主要的目的是減少GC的頻率和Full GC的次數,過多的GC和Full GC是會占用很多的系統資源(主要是CPU),影響系統的吞吐量。特別要關注Full GC,因為它會對整個堆進行整理,具體查看我的另一篇博客,鏈接地址: http://blog.csdn.net/qq_23101033/article/details/65976123
 
13、如果是C/C++架構系統如果開展性能測試
答:主要考慮穩定性測試,C/C++需求自己進行垃圾回收
14、性能測試過程中有沒有碰到性能問題,怎么分析定位解決的
15、內存泄露情況是什么現象
答:
16、如果tps曲線圖上下波動很大,那你怎么去分析問題
17、cpu資源負載高如何定位分析問題
18、IO資源使用高如何分析定位分析問題
19、有沒有部署過性能測試環境,如何部署環境的
20、配置優化性能測試如何開展,一般關注那些優化點
21、可靠性性能測試如何開展,關注那些內容
22、如何寫性能測試報告,包含那些數據
23、C/C++架構系統意外退出,沒有生成core文件,是什么原因
24、C/C++架構系統內存泄露表現是怎么樣的,如果跟蹤確定是內存泄露
25、性能測試指標一般從哪里收集
26、web頁面性能如果優化
27、你會使用那些性能測試工具,如果不使用loadrunner如何進行輕量級性能測試

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM