软件压力测试
軟件壓力測(cè)試是一種基本的質(zhì)量保證行為,它是每個(gè)重要軟件測(cè)試工作的一部分。軟件壓力測(cè)試的基本思路很簡單:不是在常規(guī)條件下運(yùn)行手動(dòng)或自動(dòng)測(cè)試,而是在計(jì)算機(jī)數(shù)量較少或系統(tǒng)資源匱乏的條件下運(yùn)行測(cè)試。通常要進(jìn)行軟件壓力測(cè)試的資源包括內(nèi)部內(nèi)存、CPU 可用性、磁盤空間和網(wǎng)絡(luò)帶寬。
中文名軟件壓力測(cè)試 外文名Software?testing pressure 釋????義測(cè)試軟件可靠性 目????的測(cè)試軟件能夠承受的用戶訪問量 要????求參數(shù)化登錄用戶的身份;
在最近的一次測(cè)試中定義了測(cè)試的目的是:需要了解AUT(被測(cè)應(yīng)用程序)一般能夠承受的壓力,同時(shí)能夠承受的用戶訪問量(容量),最多支持有多少用戶同時(shí)訪問某個(gè)功能。在AUT中選擇了用戶最常用的五個(gè)功能作為本次測(cè)試的內(nèi)容,包括登錄。大概的需求就是這樣。 接下來AUT的登錄說一說怎么用LoadRunner和Jmeter來實(shí)現(xiàn)場(chǎng)景的設(shè)置達(dá)到測(cè)試的目的。(注:對(duì)服務(wù)器的檢測(cè)不是本次測(cè)試的重點(diǎn),本次測(cè)試主要收集并發(fā)訪問用戶數(shù)和發(fā)生錯(cuò)誤用戶數(shù))。
軟件性能測(cè)試就是用來測(cè)試軟件在系統(tǒng)中的運(yùn)行性能的。軟件性能測(cè)試可以發(fā)生在各個(gè)測(cè)試階段中,即使是在單元層,一個(gè)單獨(dú)模塊的性能也可以使用白盒測(cè)試來進(jìn)行評(píng)估,然而,只有當(dāng)整個(gè)系統(tǒng)的所有成分都集成到一起之后,才能檢查一個(gè)系統(tǒng)的真正性能。 軟件性能測(cè)試經(jīng)常和軟件壓力測(cè)試一起進(jìn)行,而且常常需要硬件和軟件測(cè)試設(shè)備,這就是說,常常有必要的在一種苛刻的環(huán)境中衡量資源的使用(比如,處理器周期)。外部的測(cè)試設(shè)備可以監(jiān)測(cè)測(cè)試執(zhí)行,當(dāng)出現(xiàn)情況(如中斷)時(shí)記錄下來。通過對(duì)系統(tǒng)的檢測(cè),測(cè)試者可以發(fā)現(xiàn)導(dǎo)致效率降低和系統(tǒng)故障的原因。 軟件壓力測(cè)試:對(duì)系統(tǒng)不斷施加壓力的測(cè)試,是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。例如測(cè)試一個(gè) Web 站點(diǎn)在大量的負(fù)荷下,何時(shí)系統(tǒng)的響應(yīng)會(huì)退化或失敗。 軟件性能測(cè)試:在交替進(jìn)行負(fù)荷和強(qiáng)迫測(cè)試時(shí)常用的術(shù)語。軟件性能測(cè)試關(guān)注的是系統(tǒng)的整體。它和通常所說的強(qiáng)度、壓力/負(fù)載測(cè)試測(cè)試有密切關(guān)系。所以壓力和強(qiáng)度測(cè)試應(yīng)該于軟件性能測(cè)試一同進(jìn)行。 舉例說明:針對(duì)一個(gè)網(wǎng)站進(jìn)行測(cè)試,模擬10到50個(gè)用戶就是在進(jìn)行常規(guī)軟件性能測(cè)試,用戶增加到1000乃至上萬就變成了壓力/負(fù)載測(cè)試。如果同時(shí)對(duì)系統(tǒng)進(jìn)行大量的數(shù)據(jù)查詢操作,就包含了強(qiáng)度測(cè)試。 軟件性能測(cè)試(Performance) 正常使用的時(shí)間內(nèi)系統(tǒng)完成一個(gè)任務(wù)需要的時(shí)間,多人同時(shí)使用的時(shí)候響應(yīng)時(shí)間,在可以接受范圍內(nèi).J2EE技術(shù)實(shí)現(xiàn)的系統(tǒng)在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了. 如果在測(cè)試過程中發(fā)現(xiàn)性能問題,修復(fù)起來是非常艱難的,因?yàn)檫@常常意味著程序的算法不好,結(jié)構(gòu)不好,或者設(shè)計(jì)有問題。因此在產(chǎn)品開發(fā)的開始階段,就要考慮到軟件的性能問題 軟件壓力測(cè)試 (Stress) 多用戶情況可以考慮使用軟件壓力測(cè)試工具,建議將壓力和軟件性能測(cè)試結(jié)合起來進(jìn)行.如果有負(fù)載平衡的話還要在服務(wù)器端打開監(jiān)測(cè)工具,查看服務(wù)器CPU使用率,內(nèi)存占用情況,如果有必要可以模擬大量數(shù)據(jù)輸入,對(duì)硬盤的影響等等信息.如果有必要的話必須進(jìn)行性能優(yōu)化(軟硬件都可以). 軟件壓力測(cè)試和軟件性能測(cè)試的區(qū)別是在于他們不同的測(cè)試目的 軟件壓力測(cè)試是為了發(fā)現(xiàn)系統(tǒng)能支持的最大負(fù)載,他的前提是要求系統(tǒng)性能處在可以接受的范圍內(nèi),比如經(jīng)常規(guī)定的頁面3秒鐘內(nèi)響應(yīng); 所以一句話概括就是:在性能可以接受的前提下,測(cè)試系統(tǒng)可以支持的最大負(fù)載。 軟件性能測(cè)試是為了檢查系統(tǒng)的反映,運(yùn)行速度等性能指標(biāo),他的前提是要求在一定負(fù)載下,如檢查一個(gè)網(wǎng)站在100人同時(shí)在線的情況下的性能指標(biāo),每個(gè)用戶是否都還可以正常的完成操作等。 概括就是:在不同負(fù)載下(負(fù)載一定)時(shí),通過一些系統(tǒng)參數(shù)(如反應(yīng)時(shí)間等)檢查系統(tǒng)的運(yùn)行情況; 比如我們說某個(gè)網(wǎng)站的性能差,嚴(yán)格上應(yīng)該說‘在N人同時(shí)在線情況下,這個(gè)站點(diǎn)性能很差) 總之,就像一個(gè)方程式:綜合性能=壓力數(shù)*性能指數(shù), 綜合性能是固定的: 軟件壓力測(cè)試是為了得到性能指數(shù)最小時(shí)候(可以接受的最小指數(shù))最大的壓力數(shù)軟件性能測(cè)試是為了得到壓力數(shù)確定下的性能指數(shù)。
目的
在最近的一次測(cè)試中定義了測(cè)試的目的是:需要了解AUT(被測(cè)應(yīng)用程序)一般能夠承受的壓力,同時(shí)能夠承受的用戶訪問量(容量),最多支持有多少用戶同時(shí)訪問某個(gè)功能。在AUT中選擇了用戶最常用的五個(gè)功能作為本次測(cè)試的內(nèi)容,包括登錄。大概的需求就是這樣。 接下來AUT的登錄說一說怎么用LoadRunner和Jmeter來實(shí)現(xiàn)場(chǎng)景的設(shè)置達(dá)到測(cè)試的目的。(注:對(duì)服務(wù)器的檢測(cè)不是本次測(cè)試的重點(diǎn),本次測(cè)試主要收集并發(fā)訪問用戶數(shù)和發(fā)生錯(cuò)誤用戶數(shù))。
要求
首先是對(duì)腳本的要求: 1、錄制腳本(注意所有的腳本都應(yīng)錄制到Action中),自定義事務(wù),事務(wù)從提交用戶名和口令的腳本之前開始; 2、在定義事務(wù)開始的腳本前加入集合點(diǎn); 3、在腳本中加入檢查點(diǎn),以登錄成功的頁面出現(xiàn)登錄用戶的ID即可; 4、參數(shù)化登錄用戶的身份; 其次是對(duì)場(chǎng)景設(shè)置的要求: 1、因?yàn)槭孪任覀儾恢缹⒂卸嗌儆脩粼L問是臨界點(diǎn),所以在測(cè)試過程中需要多次改變用戶數(shù)來確定; 2、建議修改運(yùn)行時(shí)設(shè)置,優(yōu)化對(duì)服務(wù)器的訪問; [Page] 3、計(jì)劃的設(shè)置,每x時(shí)間后加載10用戶(根據(jù)總用戶數(shù)設(shè)置),完全加載后持續(xù)運(yùn)行不超過5分鐘(根據(jù)需要設(shè)置); 4、集合策略,當(dāng)運(yùn)行中的用戶數(shù)100%達(dá)到集合點(diǎn)時(shí)釋放; 5、注意事項(xiàng),需要注意幾個(gè)時(shí)間:1)服務(wù)器響應(yīng)超時(shí)時(shí)間;2)登錄事務(wù)迭代一次所使用的時(shí)間;3)集合點(diǎn)等待超時(shí)時(shí)間;4)計(jì)劃中設(shè)置的間隔時(shí)間。在我的測(cè)試中事務(wù)運(yùn)行一次的時(shí)間不超過30秒,通過修改腳本使它的運(yùn)行時(shí)間達(dá)到一分鐘左右, 服務(wù)器響應(yīng)超時(shí)時(shí)間、結(jié)合點(diǎn)等待超時(shí)時(shí)間、計(jì)劃中設(shè)置的間隔時(shí)間都設(shè)置為了2分鐘。 這樣場(chǎng)景開始運(yùn)行后運(yùn)行用戶數(shù)呈階梯增長,另外在每個(gè)上升點(diǎn)新增的用戶都會(huì)隨原來已經(jīng)運(yùn)行的用戶并發(fā)訪問服務(wù)器。 通過多次的運(yùn)行和對(duì)測(cè)試結(jié)果中正在運(yùn)行用戶數(shù)與錯(cuò)誤用戶的對(duì)比,然后根據(jù)定義可接受錯(cuò)誤率就可得到該功能的最大并發(fā)訪問的用戶數(shù)。 以上測(cè)試中排除了對(duì)網(wǎng)絡(luò)、客戶端等的要求。在實(shí)際測(cè)試中首先要保證這些資源是足夠的。 使用Jmeter也能夠達(dá)到上述描述的場(chǎng)景的測(cè)試,并且更加的便捷。實(shí)例
利用現(xiàn)代的設(shè)計(jì)技術(shù)和正式的技術(shù)復(fù)審可以減少代碼中存在的初始錯(cuò)誤,但是錯(cuò)誤總是存在的,如果開發(fā)者找不到錯(cuò)誤,那么,客戶就會(huì)找到它們。越來越多的軟件組織認(rèn)識(shí)到軟件測(cè)試是軟件質(zhì)量保證的重要元素之一,很多軟件開發(fā)組織將30%—40%甚至更多的項(xiàng)目資源用在測(cè)試上,軟件測(cè)試技術(shù)和軟件測(cè)試策略受到了高度的重視和廣泛的應(yīng)用。 本文不想就軟件測(cè)試技術(shù)和軟件測(cè)試策略作深入的理論分析,而是列舉一個(gè)在軟件系統(tǒng)測(cè)試階段進(jìn)行的軟件壓力測(cè)試實(shí)例,希望能通過這個(gè)實(shí)例與從事軟件測(cè)試相關(guān)工作的朋友進(jìn)行交流。 首先介紹一下實(shí)例中軟件的項(xiàng)目背景,該軟件是一個(gè)典型的三層C/S架構(gòu)的MIS系統(tǒng)(客戶端/應(yīng)用服務(wù)器/數(shù)據(jù)庫管),中間層是業(yè)務(wù)邏輯層,應(yīng)用服務(wù)器處理所有的業(yè)務(wù)邏輯,但應(yīng)用服務(wù)器本身不提供負(fù)載均衡的能力,而是利用開發(fā)工具提供的ORB(對(duì)象請(qǐng)求代理)軟件保證多個(gè)應(yīng)用服務(wù)器間的負(fù)載均衡。本次測(cè)試的目的是:進(jìn)行單個(gè)應(yīng)用服務(wù)器的軟件壓力測(cè)試,找出單個(gè)應(yīng)用服務(wù)器能夠支持的最大客戶端數(shù)。測(cè)試壓力估算的依據(jù)是:假定在實(shí)際環(huán)中,用戶只啟用一個(gè)應(yīng)用服務(wù)器進(jìn)行所有的業(yè)務(wù)處理。方法是:按照正常業(yè)務(wù)壓力估算值的1~10倍進(jìn)行測(cè)試,考察應(yīng)用服務(wù)器的運(yùn)行情況。區(qū)別注意
軟件性能測(cè)試就是用來測(cè)試軟件在系統(tǒng)中的運(yùn)行性能的。軟件性能測(cè)試可以發(fā)生在各個(gè)測(cè)試階段中,即使是在單元層,一個(gè)單獨(dú)模塊的性能也可以使用白盒測(cè)試來進(jìn)行評(píng)估,然而,只有當(dāng)整個(gè)系統(tǒng)的所有成分都集成到一起之后,才能檢查一個(gè)系統(tǒng)的真正性能。 軟件性能測(cè)試經(jīng)常和軟件壓力測(cè)試一起進(jìn)行,而且常常需要硬件和軟件測(cè)試設(shè)備,這就是說,常常有必要的在一種苛刻的環(huán)境中衡量資源的使用(比如,處理器周期)。外部的測(cè)試設(shè)備可以監(jiān)測(cè)測(cè)試執(zhí)行,當(dāng)出現(xiàn)情況(如中斷)時(shí)記錄下來。通過對(duì)系統(tǒng)的檢測(cè),測(cè)試者可以發(fā)現(xiàn)導(dǎo)致效率降低和系統(tǒng)故障的原因。 軟件壓力測(cè)試:對(duì)系統(tǒng)不斷施加壓力的測(cè)試,是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。例如測(cè)試一個(gè) Web 站點(diǎn)在大量的負(fù)荷下,何時(shí)系統(tǒng)的響應(yīng)會(huì)退化或失敗。 軟件性能測(cè)試:在交替進(jìn)行負(fù)荷和強(qiáng)迫測(cè)試時(shí)常用的術(shù)語。軟件性能測(cè)試關(guān)注的是系統(tǒng)的整體。它和通常所說的強(qiáng)度、壓力/負(fù)載測(cè)試測(cè)試有密切關(guān)系。所以壓力和強(qiáng)度測(cè)試應(yīng)該于軟件性能測(cè)試一同進(jìn)行。 舉例說明:針對(duì)一個(gè)網(wǎng)站進(jìn)行測(cè)試,模擬10到50個(gè)用戶就是在進(jìn)行常規(guī)軟件性能測(cè)試,用戶增加到1000乃至上萬就變成了壓力/負(fù)載測(cè)試。如果同時(shí)對(duì)系統(tǒng)進(jìn)行大量的數(shù)據(jù)查詢操作,就包含了強(qiáng)度測(cè)試。 軟件性能測(cè)試(Performance) 正常使用的時(shí)間內(nèi)系統(tǒng)完成一個(gè)任務(wù)需要的時(shí)間,多人同時(shí)使用的時(shí)候響應(yīng)時(shí)間,在可以接受范圍內(nèi).J2EE技術(shù)實(shí)現(xiàn)的系統(tǒng)在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了. 如果在測(cè)試過程中發(fā)現(xiàn)性能問題,修復(fù)起來是非常艱難的,因?yàn)檫@常常意味著程序的算法不好,結(jié)構(gòu)不好,或者設(shè)計(jì)有問題。因此在產(chǎn)品開發(fā)的開始階段,就要考慮到軟件的性能問題 軟件壓力測(cè)試 (Stress) 多用戶情況可以考慮使用軟件壓力測(cè)試工具,建議將壓力和軟件性能測(cè)試結(jié)合起來進(jìn)行.如果有負(fù)載平衡的話還要在服務(wù)器端打開監(jiān)測(cè)工具,查看服務(wù)器CPU使用率,內(nèi)存占用情況,如果有必要可以模擬大量數(shù)據(jù)輸入,對(duì)硬盤的影響等等信息.如果有必要的話必須進(jìn)行性能優(yōu)化(軟硬件都可以). 軟件壓力測(cè)試和軟件性能測(cè)試的區(qū)別是在于他們不同的測(cè)試目的 軟件壓力測(cè)試是為了發(fā)現(xiàn)系統(tǒng)能支持的最大負(fù)載,他的前提是要求系統(tǒng)性能處在可以接受的范圍內(nèi),比如經(jīng)常規(guī)定的頁面3秒鐘內(nèi)響應(yīng); 所以一句話概括就是:在性能可以接受的前提下,測(cè)試系統(tǒng)可以支持的最大負(fù)載。 軟件性能測(cè)試是為了檢查系統(tǒng)的反映,運(yùn)行速度等性能指標(biāo),他的前提是要求在一定負(fù)載下,如檢查一個(gè)網(wǎng)站在100人同時(shí)在線的情況下的性能指標(biāo),每個(gè)用戶是否都還可以正常的完成操作等。 概括就是:在不同負(fù)載下(負(fù)載一定)時(shí),通過一些系統(tǒng)參數(shù)(如反應(yīng)時(shí)間等)檢查系統(tǒng)的運(yùn)行情況; 比如我們說某個(gè)網(wǎng)站的性能差,嚴(yán)格上應(yīng)該說‘在N人同時(shí)在線情況下,這個(gè)站點(diǎn)性能很差) 總之,就像一個(gè)方程式:綜合性能=壓力數(shù)*性能指數(shù), 綜合性能是固定的: 軟件壓力測(cè)試是為了得到性能指數(shù)最小時(shí)候(可以接受的最小指數(shù))最大的壓力數(shù)軟件性能測(cè)試是為了得到壓力數(shù)確定下的性能指數(shù)。
總結(jié)
- 上一篇: 文件生成BASE64,base64转文件
- 下一篇: iOS商户进件之【营业执照编号校验】18