軟件性能測試VS負載測試VS壓力測試[3] 性能測試工具
在負載測試的相關內容中,我想應該非常重要的是要有十分充足的數據來進行測試。從我的經驗中得知,假若不用非常大的數據*去測的話,有很多嚴重的bug是不會的到的。比如說,LDAP/NIS/Active Directory數據庫中成千上萬的用戶,郵件服務器中成千上萬的郵箱,數據庫中成G成G的表,文件系統中很深的文件或者目錄的層次,等等。顯然,測試人員就需要使用自動化工具來產生這些龐大的數據集,比較幸運的是任何優秀的腳本語言都可以勝任這些工作。
壓力測試
壓力測試是指通過對系統加載過度的資源或者例系統沒有應該具有的令系統可以正常運作的資源,來使系統崩潰(在某些情況的時候,它又可以叫做負面測試)。進行這個瘋狂行為的主要目的是為了保證系統出故障及可以適當的恢復,而這個恢復得怎么樣的特性則是叫做可恢復性。
當性能測試需要的是一個可控制的環境和不斷的測度的時候,壓力測試則是令為歡喜的引起混亂及不可預測性(譯者按:從這一點可以看出作者是一個很優秀的測試人員)。還是舉WEB應用系統為例,下面是一些對系統可行的壓力測試方法:
*兩倍的已經基線的并發用戶數或者HTTP連接數
*隨機的關閉及重開連接到服務器上的網絡上集線器/路由器的端口(例如,可以通過SNMP命令來實現)
*把數據庫斷線然后再重啟
*當系統還在運行的時候,重建一個RAID陣列
*WEB和數據庫服務器上運行消耗資源(如CPU,內存,磁盤,網絡)的進程
我可以肯定一些經常使用非常規方法來破壞系統的測試人員可以進一步充實這個列表的。只是壓力測試并不是簡單的為了一種破壞的快感而去破壞系統,實際上它是可以讓測試工程師觀察系統對出現故障時系統的反應。系統是不是保存了它出故障時的狀態?是不是它就突然間崩潰掉了?它是否只是掛在那兒啥也不做了?它失效的時候是不是有一些反應*?在重啟之后,它是否有能力可以恢復到前一個正常運行的狀態?它是否會給用戶顯示出一些有用的錯誤信息,還是只是顯示一些很難理解的十六進制代碼?系統的安全性是否為因為一些不可預料的故障而會有所降低?這些問題可以一直問下去的。 軟件測試
結論
我明白我只是提到一些在性能/負載/壓力測試中應該值得注意的一些比較基礎的問題,工具及方法。我個人覺得性能測試及調試是一個很有趣的話題,我將會在以后貼更多的相關內容上來的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/