JMeter錄制
JMeter自身提供了http代理方式進(jìn)行錄制纺酸,原理是解析網(wǎng)絡(luò)數(shù)據(jù)包窖逗,按Http協(xié)議包裝秤Http,Request餐蔬,HttpResponse等對(duì)象碎紊,同時(shí)也提供了第三方工具BadBoy進(jìn)行錄制。
BadBoy錄制
BadBoy就是一個(gè)瀏覽器模擬工具樊诺,功能有:
????????????? 1.1具有錄制回放功能
????????????? 1.2可以進(jìn)行調(diào)試
????????????? 1.3可以用來做自動(dòng)化測(cè)試仗考,因?yàn)榫哂胁东@表單數(shù)據(jù)的功能
????????????? 1.4對(duì)web頁面進(jìn)行診斷,診斷系統(tǒng)響應(yīng)快慢啄骇,響應(yīng)數(shù)據(jù)大小
?????????????? 1.5錄制功能痴鳄,錄制的腳本可以直接導(dǎo)出jmx格式。
BadBoy的錄制方式:
1.request:模仿瀏覽器發(fā)送表單信息到服務(wù)器缸夹,每一個(gè)資源都將作為請(qǐng)求發(fā)送痪寻。
2.Navigation:記錄用戶鼠標(biāo)動(dòng)作螺句,類似于QTP回放時(shí)模擬一個(gè)點(diǎn)擊
基于JMeter腳本的要求,我們需要選用request方式來進(jìn)行錄制橡类,這些請(qǐng)求將會(huì)以jmx的格式保存下來蛇尚,從而我們才可以導(dǎo)入JMeter進(jìn)行復(fù)用
下面我們安裝BadBoy進(jìn)行錄制:
(1)下載badBoy進(jìn)行安裝(直接雙擊exe)
(2)打開BadBoy,在開始菜單中找到啟動(dòng)快捷方式點(diǎn)擊打開顾画,初始界面默認(rèn)開啟了Request的錄制模式取劫。點(diǎn)擊菜單中的N可以切換成Navigation錄制方式
在上圖地址欄直接輸入請(qǐng)求的頁面,回車或者點(diǎn)擊向右箭頭開始錄制研侣。
Script目錄樹結(jié)構(gòu)說明:
Test Suite 1:默認(rèn)的腳本根節(jié)點(diǎn)谱邪,類似JMeter中的測(cè)試計(jì)劃根節(jié)點(diǎn)
Test1:測(cè)試活動(dòng)根節(jié)點(diǎn),可以理解為一個(gè)業(yè)務(wù)功能的腳本存放在此目錄下
Step2:測(cè)試活動(dòng)的步驟庶诡,業(yè)務(wù)過長(zhǎng)可拆分為多個(gè)步驟惦银,建立多個(gè)Step
開始錄制前介紹下jforum測(cè)試環(huán)境的安裝:
我的Jforum環(huán)境搭建在win 7 64位系統(tǒng)之上
1. 到Jforum官網(wǎng)下載安裝包,地址是http://jforum.net/download.jsp
2.解壓下載的壓縮包到%TOMCAT_HOME%webapps/目錄(%TOMCAT_HOME%是你機(jī)器上Tomcat的安裝目錄)末誓,如下圖
TOMCAT 和JDK 請(qǐng)自行網(wǎng)上下載和配置環(huán)境變量扯俱,教程很多。
3.啟動(dòng)TOMCAT:
4.進(jìn)入安裝頁面喇澡,在瀏覽器中輸入地址http://127.0.0.1:8080/jforum-2.1.9/install.jsp
我下的版本是2.1.9 所以是這個(gè)編號(hào) 迅栅,根據(jù)自己下的版本來。
在配置JForum之前必須保證安裝的庫是存在的晴玖,本地需下載MySql读存,然后建立一個(gè)jforum的庫,MySql請(qǐng)至官網(wǎng)下載窜醉, 我下的版本是mysql-5.6.37宪萄,下載安裝步驟可參考:http://www.jb51.net/article/89224.htm,在安裝JForum中選擇的庫就是在mysql中建立的jforum庫榨惰,安裝過程中會(huì)訪問這個(gè)庫并自動(dòng)生成表結(jié)構(gòu)以及初始化數(shù)據(jù)拜英。我選擇用JDBC來訪問MySql的jforum庫,賬號(hào)是root賬號(hào)琅催,數(shù)據(jù)庫端口默認(rèn)是3306居凶,數(shù)據(jù)庫密碼填入自己機(jī)器上設(shè)置的MySql密碼。填完內(nèi)容后點(diǎn)擊下一步進(jìn)行完成安裝
如果遇到安裝報(bào)錯(cuò)藤抡,請(qǐng)參考http://blog.sina.com.cn/s/blog_3cacb01b0102vocg.html侠碧。
回到BadBoy,輸入url鏈接缠黍,可以看到論壇的登錄界面弄兜,從這里開始進(jìn)行錄制步驟。訪問這個(gè)鏈接之前要保證TOMCAT和MySql都已啟動(dòng),不然網(wǎng)頁鏈接不成功替饿。
?Step1:輸入用戶名和密碼完成登錄语泽,成功后進(jìn)入論壇首頁(用戶名和密碼是配置jforum使用的管理員用戶和密碼)
Step2:進(jìn)入相應(yīng)版塊
點(diǎn)擊菜單欄中開始錄制左邊的+號(hào)新建一個(gè)Step2,進(jìn)入Test Forum版塊
Step3:發(fā)帖
同樣點(diǎn)擊+號(hào)视卢,然后點(diǎn)擊網(wǎng)頁中的New post來編輯一個(gè)新帖踱卵,然后點(diǎn)發(fā)送
以上就是錄制登錄及發(fā)帖的全過程,錄制完成后導(dǎo)出成JMeter腳本据过,如下圖所示
下面我們?cè)贘Meter中打開剛剛保存的Script.jmx腳本惋砂,JMeter以樹形結(jié)構(gòu)顯示腳本,執(zhí)行時(shí)原則上按節(jié)點(diǎn)先后順序往下執(zhí)行
有關(guān)上圖中的腳本元件介紹如下:
Test Plan:測(cè)試計(jì)劃绳锅,JMeter測(cè)試腳本根節(jié)點(diǎn)西饵,每一個(gè)測(cè)試腳本都是一個(gè)測(cè)試計(jì)劃,名稱可以自定義鳞芙,功能有:
(1):設(shè)置用戶全局變量罗标,即在“用戶定義的變量”中定義
(2):獨(dú)立運(yùn)行每個(gè)線程組,如果一個(gè)測(cè)試計(jì)劃中有多個(gè)線程組积蜻,設(shè)置此項(xiàng)可以生效,不設(shè)置時(shí)每個(gè)線程組同時(shí)運(yùn)行
(3):Run teardown Thread Groups after shutdown of main threads.關(guān)閉主線程后運(yùn)行teardown程序來正常關(guān)閉線程組(運(yùn)行的線程本次迭代完成后關(guān)閉)
(4):函數(shù)測(cè)試模式彻消,在調(diào)試腳本的過程中我們可能需要獲取服務(wù)器返回的詳細(xì)信息就可以選擇此項(xiàng)竿拆,此項(xiàng)記錄較多的數(shù)據(jù)會(huì)影響測(cè)試效率,所以在執(zhí)行性能測(cè)試時(shí)請(qǐng)關(guān)閉此項(xiàng)
(5):Add firectory or jar to classpath 把測(cè)試需要依賴的jar包或包所在的目錄加入類路徑
ThreadGroup: ?是模擬虛擬用戶的發(fā)起點(diǎn)宾尚,在此可以設(shè)置線程數(shù)及運(yùn)行次數(shù)或者運(yùn)行時(shí)間丙笋,還可以定義調(diào)度時(shí)間與運(yùn)行時(shí)長(zhǎng)
HTTP Cookie Manager:JMeter通過加入HTTP Cookie Manager來自動(dòng)記錄Cookie信息,選擇默認(rèn)即可
HTTP Header Manager:管理HTTP頭信息
Step1:實(shí)際上這是一個(gè)循環(huán)控制器煌贴,我們可以在【邏輯控制器】下找到它御板,在此我們可以設(shè)置循環(huán)次數(shù),以我們錄制業(yè)務(wù)為例牛郑,一次登錄可以多次發(fā)送新帖怠肋,所以把登錄(step1)的循環(huán)次數(shù)設(shè)置為1(圖17),step2/3進(jìn)入板塊與發(fā)帖的循環(huán)次數(shù)設(shè)置為永遠(yuǎn)
http://127.0.0.1.jforum-2.1.9/user/login.page:這是一個(gè)HTTP請(qǐng)求元件淹朋,我們可以在【Sampler】中找到他的身影 Step1-----添加----Sampler-----Http請(qǐng)求笙各。
圖18是模擬登錄頁面的腳本,模擬進(jìn)入登錄頁面:
下面我們來認(rèn)識(shí)下上圖中的各種屬性:
1.Web服務(wù)器:指定Http請(qǐng)求的主機(jī)地址础芍,不需要加上“http://”杈抢,JMeter自動(dòng)會(huì)加上,普通web服務(wù)端口號(hào)是80仑性,郵箱端口一般是443惶楼,如果訪問地址中帶有其他端口號(hào)要在此框內(nèi)填入。