如何給軟件性能測試定位 軟件測試
接觸性能測試不深,更非專(zhuān)家,自己的理解,瓶頸產(chǎn)生在以下幾方面:
1、網(wǎng)絡(luò )瓶頸,如帶寬,流量等形成的網(wǎng)絡(luò )環(huán)境
2、應用服務(wù)瓶頸,如中間件的基本配置,CACHE等
3、系統瓶頸,這個(gè)比較常用:應用服務(wù)器,數據庫服務(wù)器以及客戶(hù)機的CPU,內存,硬盤(pán)等配置
4、數據庫瓶頸,以ORACLE為例,SYS中默認的一些參數設置
5、應用程序本身瓶頸,
針對網(wǎng)絡(luò )瓶頸,現在冒似很少,不過(guò)也不是沒(méi)有,首先想一下如果有網(wǎng)絡(luò )的阻塞,斷網(wǎng),帶寬被其他資源占用,限速等情況,應用程序或系統會(huì )是什么情況,針對WEB,無(wú)非是超時(shí),HTTP400,500之類(lèi)的錯,針對一些客戶(hù)端程序,可能也是超時(shí),掉線(xiàn),服務(wù)器下發(fā)的,需要服務(wù)器返回的信息獲取不到還有一種更明顯的情況,應該就是事務(wù)提交慢,如果封裝事務(wù)的代碼再不完善,一般造成的錯誤,無(wú)非就是數據提交不完整,或者因為網(wǎng)終原因+代碼缺陷造成重復性提交。如此綜合下來(lái),肯定是考慮網(wǎng)絡(luò )有瓶頸,然后考慮網(wǎng)絡(luò )有問(wèn)題時(shí),怎樣去優(yōu)化,是需要優(yōu)化交互的一些代碼,還是接口之類(lèi)的。
應用服務(wù)的瓶頸的定位,比較復雜,學(xué)習中,不過(guò)網(wǎng)上有很多資料可以參考的。一般像tomcat,weblogic之類(lèi)的,有默認的設置,也有經(jīng)過(guò)架構和維護人員進(jìn)行試驗調試的一些值,這些值一般可以滿(mǎn)足程序發(fā)布的需要,不必進(jìn)行太多的設置,可能我們認識的最基本的就是JAVA_OPTS的設置,maxThreads,time_out之類(lèi)的參數我們做借助LR,Jemeter或webload之類(lèi)的工具,執行性能測試,尤其是對應用服務(wù)造成了壓力,如果應用服務(wù)有瓶頸,一般我們設置的log4j.properties,日志都會(huì )記錄下來(lái)。然后根據日志,去進(jìn)一步確定應用服務(wù)的問(wèn)題
系統瓶頸,這個(gè)定位雖說(shuō)比較復雜,但是有很多前輩的經(jīng)驗值參考,不作說(shuō)明,相信用LR的同行,也可以從性能記數器中得出一些指標值,加上nagios,cacti,可以很明顯的看出系統哪些資源夠用,哪些資源明顯不夠用。不過(guò),一般系統瓶頸的造成,是因為應用程序本身造成的。關(guān)于這點(diǎn)兒的分析和定位,就需要歸入應用程序本身瓶頸分析和定位了。
現在基本所有的東東,都離不開(kāi)數據庫這個(gè)后臺,數據庫的瓶頸實(shí)在是不知道是什么概念,數據庫管理員的工作,數據庫管理員日常做的工作,可能就是有瓶頸定位的工作,比如:查詢(xún)一下V$sys_event,V$sysstat,v$syssql之類(lèi)的表,比對一下日常正常情況下的監控數據,看一下有沒(méi)有異常等。其他方面,我也不是太了解。
應用程序瓶頸,這個(gè)是測試過(guò)程中最需要去關(guān)注的,需要測試人員和開(kāi)發(fā)人員配合執行,然后定位,我這兒做的大都是執行性的,比如會(huì )有腳本去運行,開(kāi)發(fā)人員會(huì )結合jprofiler之類(lèi)的工具,去看一下堆遍歷,線(xiàn)程剖析的情況確定哪兒有問(wèn)題。大致是這樣,沒(méi)有實(shí)際操作過(guò)
逐步細化分析,先可以監控一些常見(jiàn)衡量CPU,內存,磁盤(pán)的性能指標,進(jìn)行綜合分析,然后根據所測系統具體情況,進(jìn)行初步問(wèn)題定位,然后確定更詳細的監控指標來(lái)分析。
懷疑內存不足時(shí):
方法1:
【監控指標】:Memory Available MBytes ,Memory的Pages/sec, page read/sec, Page Faults/sec
【參考值】:
如果 Page Reads/Sec 比率持續保持為 5,表示可能內存不足。
Page/sec 推薦00-20(如果服務(wù)器沒(méi)有足夠的內存處理其工作負荷,此數值將一直很高。如果大于80,表示有問(wèn)題)。
方法2:根據Physical Disk 值分析性能瓶頸
【監控指標】:Memory Available MBytes ,Pages read/sec,%Disk Time 和 Avg.Disk Queue Length
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/