《軟件測試實驗三Jm》由會員分享,可在線閱讀,更多相關(guān)《軟件測試實驗三Jm(39頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Click to edit Master text styles,Second level,Third level,Click to edit Master title style,WebEx Confidential,*,軟件測試實驗三,Jmeter,Jmeter agenda,Jmeter,簡介,Jmeter,安裝,腳本錄制,腳本開發(fā),Web,壓力測試,數(shù)據(jù)庫測試性能測試,上機(jī)實驗習(xí)題,Jmeter,簡介,-,概述,Jmeter,是,Apache,組織的開放源代碼項目,是純,java,應(yīng)用程序,是功能測試和性能測試的工具,.,Jmeter,最早是為了測試,Tomcat,的前身,Jserve
2、r,的執(zhí)行效率而誕生的,.,目前其測試能力不僅局限于對,Web,服務(wù)器的測試,而是涵蓋了數(shù)據(jù)庫,JMS,Web Service,LDAP,等對種對象的測試能力,.,Jmeter,可以用于測試靜態(tài)或是動態(tài)資源的性能,(,靜態(tài)文件,Servlets,java,對象,Perl,腳本,數(shù)據(jù)庫和,FTP,服務(wù)器等,).,可以用于針對服務(wù)器,網(wǎng)絡(luò)或?qū)ο笊夏M大量并發(fā)負(fù)載來進(jìn)行壓力強(qiáng)度測試,.,可以分析不同壓力負(fù)載下的整體性能情況,包括性能的圖形分析,.,Jmeter,簡介,-,特點,Jmeter,支持范圍廣泛,:,多協(xié)議,-HTTP/TCP/FTP/JDBC/SOAP/LDAP/MAIL;,跨平臺,-,所
3、有支持,JVM,的平臺都可以運(yùn)行,Jmeter;,多語言,-,所有支持,Bean Script Framework,的腳本語言,;,內(nèi)部實現(xiàn)線程機(jī)制,(,線程組,),不用編寫并發(fā)負(fù)載過程代碼,;,提供豐富的邏輯控制器,控制線程的運(yùn)行,;,產(chǎn)生相應(yīng)測試結(jié)果的統(tǒng)計報表,.,Jmeter,簡介,-,優(yōu)勢,不依賴于界面,通過,API,調(diào)用或參數(shù)傳遞來增加并執(zhí)行測試用例,;,不需要編寫測試腳本,只需要熟悉業(yè)務(wù)流程和,http,請求,根據(jù),input,對象編寫測試用例,;,跳過頁面限制,直接向后臺程序添加非法數(shù)據(jù),;,利用,badboy,錄制測試過程,快速生成測試腳本,;,運(yùn)用參數(shù)化以及函數(shù)功能,快速完成
4、添加修改測試數(shù)據(jù),.,Jmeter,安裝,Jmeter,官方網(wǎng)站,downloads release-browse download area,選擇最新版本,jakarta-jmeter-2.3.4.zip;,需要,JDK1.4,以及以上版本,;,Jmeter,安裝目錄,解壓生成安裝目錄,;,選擇最新版本,jakarta-jmeter-2.3.4.zip;,需要,JDK1.4,以及以上版本,;,Jmeter,安裝目錄,Bin,目錄,運(yùn)行,Jmeter.bat,即可看見,Jmeter GUI,客戶端,;,注意,:,1.,內(nèi)存,512M,使用默認(rèn)參數(shù),內(nèi)存,512M,將命令行中參數(shù)調(diào)小,否則在,j
5、meter.log,里會顯示內(nèi)存溢出錯誤,.,將,Jmeter.bat,用,UE,打開,JVM,內(nèi)存配置參數(shù)調(diào)整,set HEAP=-Xms,256,m-Xmx,256,m,set NEW=-XX:NewSize=,128,m-XX:MaxNewSize=,128,m,set SURVIVOR=-XX:SurvivorRatio=8-XX:TargetSurvivorRatio=50%,set TENURING=-XX:MaxTenuringThreshold=2,set EVACUATION=-XX:MaxLiveObjectEvacuationRatio=20%,set RMIGC=-=6
6、00000-=600000,set PERM=-XX:PermSize=,64,m-XX:MaxPermSize=,64,m,set DEBUG=-verbose:gc-XX:+PrintTenuringDistribution,內(nèi)存配置參數(shù)定義,ms/mx,:定義,YOUNG+OLD,段的總尺寸,,ms,為,JVM,啟動時,YOUNG+OLD,的內(nèi)存大??;,mx,為最大可占用的,YOUNG+OLD,內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個值設(shè)為相同,以減少運(yùn)行期間系統(tǒng)在內(nèi)存申請上所花的開銷。,NewSize/MaxNewSize,:定義,YOUNG,段的尺寸,,NewSize,為,JVM,啟動
7、時,YOUNG,的內(nèi)存大??;,MaxNewSize,為最大可占用的,YOUNG,內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個值設(shè)為相同,以減少運(yùn)行期間系統(tǒng)在內(nèi)存申請上所花的開銷。,PermSize/MaxPermSize,:定義,Perm,段的尺寸,,PermSize,為,JVM,啟動時,Perm,的內(nèi)存大??;,MaxPermSize,為最大可占用的,Perm,內(nèi)存大小。在用戶生產(chǎn)環(huán)境上一般將這兩個值設(shè)為相同,以減少運(yùn)行期間系統(tǒng)在內(nèi)存申請上所花的開銷。,Jmeter,安裝目錄,Docs,目錄,Jmeter Java docs,Usermanual-Jmeter,英文用戶文檔手冊,Component_
8、reference.html,核心元件幫助文檔,demos Jmeter,腳本案例,Extras,目錄,對,ant,構(gòu)建工具提供支持,運(yùn)用,ant,實現(xiàn)批量腳本自動執(zhí)行,產(chǎn)生,HTML,報表,.,記錄所有測試數(shù)據(jù),自動生成,.jtl,文件至,extras,目錄下,運(yùn)行,ant-Dtest=,文件名,report,即可生,成測試統(tǒng)計報表,.,Lib,目錄,ext,存放,Jmeter,核心,jar,包,.,junit,存放,Junit,測試腳本,錄制腳本,運(yùn)用,Badboy,錄制生成,Jmeter,腳本,.,安裝和啟動錄制,Badboy,官方網(wǎng)站,/,下載,Badboy,最新版本,啟動,badbo
9、y,在地址欄中輸入待錄制的,web,應(yīng)用網(wǎng)站,的,URL,這里以為例,回車開始錄制,.,錄制過程,直接在主界面右側(cè),badboy,內(nèi)嵌瀏覽器中對應(yīng)用網(wǎng)站進(jìn)行操作,所有操作都會被記錄在主界面右側(cè)的編輯窗口中,.,錄制腳本,導(dǎo)出腳本,錄制完成后,點擊工具欄中的,stop recording,完成錄制,選擇,File-Export to Jmeter,并填寫文件名,USTCLogin.jmx,將錄制好的腳本導(dǎo)出為,Jmeter,格式,.,執(zhí)行腳本,啟動,Jmeter,打開剛才生成的腳本,.,先增加監(jiān)聽器,-,查看結(jié)果樹,/,用表格查看結(jié)果,自帶錄制組件,-Http,代理服務(wù)器,配置,Http,代理服
10、務(wù)器,代理服務(wù)器端口,:8000,目標(biāo)控制器,:,錄制腳本的存放位置 選擇默認(rèn)值,分組,:,將請求匯總分組,把,url,請求理解為組,不對樣品分組,:,羅列所有請求,在組間添加分割,:,加入一個虛擬的,以分割線命名的動作,.,每個組放入一個控制器,:,執(zhí)行時按控制器定義輸出結(jié)果,只存儲每個組的第一個樣本,:,對于一次,url,請求,實際很多次,http,請求的情況,.,一般選擇只存儲每個組的第,1,個樣本,.,配置,Http,代理服務(wù)器,記錄,HTTP,信息頭,:,錄制,request,的,head,信息,添加斷言,:,錄制時,加入空的檢查點,(,自行填寫,),Regex matching:,
11、錄制時,加入空的正則匹配,.,包含模式和排除模式,:,過濾一些不需要的訪問請求,.,通過配置瀏覽器的代理服務(wù)器,使得所有訪問請求通過,Jmeter,發(fā)送,Jmeter,將訪問過程全部錄制下來,.,瀏覽器設(shè)置,瀏覽器設(shè)置,打開瀏覽器添加代理,填寫本機(jī),IP,或是,host name,端口填寫為設(shè)置的,8000,將,IE,設(shè)置為代理,在瀏覽器中鍵入待錄制頁面的,URL,然后對該頁面進(jìn)行操作,Jmeter,會自動將所進(jìn)行的操作轉(zhuǎn)化為腳本,.,Jmeter,腳本開發(fā),測試計劃,測試計劃描述了執(zhí)行測試過程中,JMeter,的執(zhí)行過程和步驟,一個完整的測試計劃包括一個或者多個線程組,(Thread Gro
12、ups),、邏輯控制(,Logic Controller,)、實例產(chǎn)生控制器(,Sample Generating Controllers,)、偵聽器,(Listener),、定時器(,Timer,)、比較(,Assertions,)、配置元素(,Config Elements,)。打開,JMeter,時,它已經(jīng)建立一個默認(rèn)的測試計劃,一個,JMeter,應(yīng)用的實例只能建立或者打開一個測試計劃。,Jmeter,腳本開發(fā),JMeter,的主要測試組件總結(jié)如下:,1.,測試計劃是使用,JMeter,進(jìn)行測試的起點,它是其它,JMeter,測試元件的容器。,2.,線程組代表一定數(shù)量的并發(fā)用戶,它可以
13、用來模擬并發(fā)用戶發(fā)送請求。實際的請求內(nèi)容在,Sampler,中定義,它被線程組包含。,3.,監(jiān)聽器負(fù)責(zé)收集測試結(jié)果,同時也被告知了結(jié)果顯示的方式。,4.,邏輯控制器可以自定義,JMeter,發(fā)送請求的行為邏輯,它與,Sampler,結(jié)合使用可以模擬復(fù)雜的請求序列。,5.,斷言可以用來判斷請求響應(yīng)的結(jié)果是否如用戶所期望的。它可以用來隔離問題域,即在確保功能正確的前提下執(zhí)行壓力測試。這個限制對于有效的測試是非常有用的。,6.,配置元件維護(hù),Sampler,需要的配置信息,并根據(jù)實際的需要會修改請求的內(nèi)容。,7.,前置處理器和后置處理器負(fù)責(zé)在生成請求之前和之后完成工作。前置處理器常常用來修改請求的設(shè)
14、置,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)。,8.,定時器負(fù)責(zé)定義請求之間的延遲間隔。,Jmeter,腳本開發(fā),填充一個測試計劃的內(nèi)容,這個測試計劃向一個,jsp,文件和一個,servlet,發(fā)出請求,我們需要,JMeter,模擬五個請求者(也就是五個線程),每個請求者連續(xù)請求兩次,下面介紹了詳細(xì)的操作步驟,.,Jmeter,腳本開發(fā),增加負(fù)載信息設(shè)置,模擬五個請求者,每個請求者在測試過程中連續(xù),請求兩次,.,選中可視化界面中左邊樹的測試計劃節(jié)點,單擊,右鍵,選擇增加線程組,界面右邊將會出現(xiàn)他的,設(shè)置信息框。,線程組有三個和負(fù)載信息相關(guān)的參數(shù):,線程數(shù),:設(shè)置發(fā)送請求的用戶數(shù)目,.,Ramp-up
15、 period,:每個請求發(fā)生的總時間間隔,,單位是秒。比如你的請求數(shù)目是,5,,而這個參數(shù)是,10,,那么每個請求之間的間隔就是,10,5,即,2,秒,.,循環(huán)次數(shù),:,請求發(fā)生的重復(fù)次數(shù),如果選擇后面的,forever(,默認(rèn),),那么請求將一直繼續(xù),如果不選擇,forever,而在輸入框中輸入數(shù)字,那么請求將重復(fù),指定的次數(shù),如果輸入,0,那么請求將執(zhí)行一次,.,Jmeter,腳本開發(fā),Jmeter,腳本開發(fā),增加默認(rèn),Http,屬性(可選),實際的測試工作往往是針對同一個服務(wù)器上,Web,應(yīng)用展開的,所以,Jmeter,提供了這樣一種設(shè)置,在默認(rèn),Http,屬性設(shè)置需要被測試服務(wù)器的相
16、關(guān)屬性,以后的,http,請求設(shè)置中就可以忽略這些相同參數(shù)的設(shè)置,減少設(shè)置參數(shù)錄入的時間,.,Jmeter,腳本開發(fā),選中可視化界面中左邊樹的測試計劃節(jié)點,單擊右鍵,選擇配置元件,-Http,請求默認(rèn)值,界面右邊將會出現(xiàn)他的設(shè)置信息框。,默認(rèn),http,屬性的主要參數(shù)說明如下:,protocal,:發(fā)送測試請求時使用的協(xié)議,server name or ip,:被測試服務(wù)器的,ip,地址或者名字,path,:默認(rèn)的起始位置。比如將,path,設(shè)置為,jmeter,,那么所有的,http,請求的,url,中都將增加,jmeter,路徑。,port number,:服務(wù)器提供服務(wù)的端口號,Jmeter,腳本開發(fā),測試計劃將針對本機(jī)的,Web,服務(wù)器上的,Web,應(yīng)用進(jìn)行測試,所以,protocal,應(yīng)該是,http,,,ip,使用,localhost,,因為這個,web,應(yīng)用發(fā)布的,context,路徑是,jmeter,,所以這里的,path,設(shè)置為,jmeter,,因為使用,Tomcat,服務(wù)器,所以,port number,是,8000,。設(shè)置后的屏幕截圖如下:,Jmeter,腳本開發(fā)