目的
在最近的一次測試中定義了測試的目的是:需要了解AUT(被測應用程序)一般能夠承受的壓力,同時能夠承受的用戶訪問量(容量),最多支持有多少用戶同時訪問某個功能。在AUT中選擇了用戶最常用的五個功能作為本次測試的内容,包括登錄。大概的需求就是這樣。
接下來AUT的登錄說一說怎麼用LoadRunner和Jmeter來實現場景的設置達到測試的目的。(注:對服務器的檢測不是本次測試的重點,本次測試主要收集并發訪問用戶數和發生錯誤用戶數)。
要求
首先是對腳本的要求:
1、錄制腳本(注意所有的腳本都應錄制到Action中),自定義事務,事務從提交用戶名和口令的腳本之前開始,
2、在定義事務開始的腳本前加入集合點,
3、在腳本中加入檢查點,以登錄成功的頁面出現登錄用戶的ID即可,
4、參數化登錄用戶的身份,
其次是對場景設置的要求:
1、因為事先我們不知道将有多少用戶訪問是臨界點,所以在測試過程中需要多次改變用戶數來确定,
2、建議修改運行時設置,優化對服務器的訪問,[Page,
3、計劃的設置,每x時間後加載10用戶(根據總用戶數設置),完全加載後持續運行不超過5分鐘(根據需要設置),
4、集合策略,當運行中的用戶數100%達到集合點時釋放,
5、注意事項,需要注意幾個時間:1)服務器響應超時時間,2)登錄事務叠代一次所使用的時間,3)集合點等待超時時間,4)計劃中設置的間隔時間。在我的測試中事務運行一次的時間不超過30秒,通過修改腳本使它的運行時間達到一分鐘左右,服務器響應超時時間、結合點等待超時時間、計劃中設置的間隔時間都設置為了2分鐘。
這樣場景開始運行後運行用戶數呈階梯增長,另外在每個上升點新增的用戶都會随原來已經運行的用戶并發訪問服務器。
通過多次的運行和對測試結果中正在運行用戶數與錯誤用戶的對比,然後根據定義可接受錯誤率就可得到該功能的最大并發訪問的用戶數。
以上測試中排除了對網絡、客戶端等的要求。在實際測試中首先要保證這些資源是足夠的。
使用Jmeter也能夠達到上述描述的場景的測試,并且更加的便捷。
實例
利用現代的設計技術和正式的技術複審可以減少代碼中存在的初始錯誤,但是錯誤總是存在的,如果開發者找不到錯誤,那麼,客戶就會找到它們。越來越多的軟件組織認識到軟件測試是軟件質量保證的重要元素之一,很多軟件開發組織将30%—40%甚至更多的項目資源用在測試上,軟件測試技術和軟件測試策略受到了高度的重視和廣泛的應用。
本文不想就軟件測試技術和軟件測試策略作深入的理論分析,而是列舉一個在軟件系統測試階段進行的軟件壓力測試實例,希望能通過這個實例與從事軟件測試相關工作的朋友進行交流。
首先介紹一下實例中軟件的項目背景,該軟件是一個典型的三層C,S架構的MIS系統(客戶端,應用服務器,數據庫管),中間層是業務邏輯層,應用服務器處理所有的業務邏輯,但應用服務器本身不提供負載均衡的能力,而是利用開發工具提供的ORB(對象請求代理)軟件保證多個應用服務器間的負載均衡。本次測試的目的是:進行單個應用服務器的軟件壓力測試,找出單個應用服務器能夠支持的最大客戶端數。測試壓力估算的依據是:假定在實際環中,用戶隻啟用一個應用服務器進行所有的業務處理。方法是:按照正常業務壓力估算值的1~10倍進行測試,考察應用服務器的運行情況。
區别注意
軟件性能測試就是用來測試軟件在系統中的運行性能的。軟件性能測試可以發生在各個測試階段中,即使是在單元層,一個單獨模塊的性能也可以使用白盒測試來進行評估,然而,隻有當整個系統的所有成分都集成到一起之後,才能檢查一個系統的真正性能。
軟件性能測試經常和軟件壓力測試一起進行,而且常常需要硬件和軟件測試設備,這就是說,常常有必要的在一種苛刻的環境中衡量資源的使用(比如,處理器周期)。外部的測試設備可以監測測試執行,當出現情況(如中斷)時記錄下來。通過對系統的檢測,測試者可以發現導緻效率降低和系統故障的原因。
軟件壓力測試:對系統不斷施加壓力的測試,是通過确定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級别的測試。例如測試一個Web站點在大量的負荷下,何時系統的響應會退化或失敗。
軟件性能測試:在交替進行負荷和強迫測試時常用的術語。軟件性能測試關注的是系統的整體。它和通常所說的強度、壓力,負載測試測試有密切關系。所以壓力和強度測試應該于軟件性能測試一同進行。
舉例說明:針對一個網站進行測試,模拟10到50個用戶就是在進行常規軟件性能測試,用戶增加到1000乃至上萬就變成了壓力,負載測試。如果同時對系統進行大量的數據查詢操作,就包含了強度測試。
軟件性能測試(Performance)正常使用的時間内系統完成一個任務需要的時間,多人同時使用的時候響應時間,在可以接受範圍内,J2EE技術實現的系統在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了,如果在測試過程中發現性能問題,修複起來是非常艱難的,因為這常常意味着程序的算法不好,結構不好,或者設計有問題。因此在産品開發的開始階段,就要考慮到軟件的性能問題
軟件壓力測試(Stress)多用戶情況可以考慮使用軟件壓力測試工具,建議将壓力和軟件性能測試結合起來進行,如果有負載平衡的話還要在服務器端打開監測工具,查看服務器CPU使用率,内存占用情況,如果有必要可以模拟大量數據輸入,對硬盤的影響等等信息,如果有必要的話必須進行性能優化(軟硬件都可以),
軟件壓力測試和軟件性能測試的區别是在于他們不同的測試目的
軟件壓力測試是為了發現系統能支持的最大負載,他的前提是要求系統性能處在可以接受的範圍内,比如經常規定的頁面3秒鐘内響應,
所以一句話概括就是:在性能可以接受的前提下,測試系統可以支持的最大負載。
軟件性能測試是為了檢查系統的反映,運行速度等性能指标,他的前提是要求在一定負載下,如檢查一個網站在100人同時在線的情況下的性能指标,每個用戶是否都還可以正常的完成操作等。
概括就是:在不同負載下(負載一定)時,通過一些系統參數(如反應時間等)檢查系統的運行情況,
比如我們說某個網站的性能差,嚴格上應該說‘在N人同時在線情況下,這個站點性能很差)
總之,就像一個方程式:綜合性能=壓力數*性能指數,
綜合性能是固定的:
軟件壓力測試是為了得到性能指數最小時候(可以接受的最小指數)最大的壓力數軟件性能測試是為了得到壓力數确定下的性能指數。



















