三、使用Jmeter開始測試
1、打開腳本
用Jmeter打開我們上面保存的文件。
打開之后如圖所示:
2、修改腳本
a、線程組
在測試計(jì)劃里面選擇添加既可以看到線程組。
如上圖:
名稱:可以隨意取,我們保持創(chuàng)建是自動(dòng)分配的名稱
注釋:隨意
在取樣器錯(cuò)誤后要執(zhí)行的動(dòng)作:我們選擇繼續(xù),錯(cuò)誤之后依然繼續(xù)執(zhí)行
線程數(shù):一般我們用來表示多少個(gè)用戶,即我們測試時(shí)的用戶數(shù)量
Ramp-up Period(in Seconds):表示每個(gè)用戶啟動(dòng)的延遲時(shí)間,上述我設(shè)為1秒,表示系統(tǒng)將在1秒結(jié)束前啟動(dòng)我設(shè)置的1000個(gè)用戶,如果設(shè)置為1000秒,那么系統(tǒng)將會(huì)在1000秒結(jié)束前啟動(dòng)這1000個(gè)用戶,開始用戶的延遲為1秒, 如果我設(shè)置為0秒,則表示立即啟動(dòng)所有用戶。
循環(huán)次數(shù):如果你要限定循環(huán)次數(shù)為10次的話,可以取消永遠(yuǎn)的那個(gè)勾,然后在后面的文本框里面填寫10;在這里我們勾上永遠(yuǎn),表示如果不停止或者限定時(shí)間將會(huì)一直執(zhí)行下去, 是為了方便調(diào)度器的調(diào)用。
調(diào)度器的配置:我們勾選調(diào)度器時(shí),將會(huì)出現(xiàn)這個(gè)面板
啟動(dòng)時(shí)間:表示我們腳本開始啟動(dòng)的時(shí)間,當(dāng)你不想立即啟動(dòng)腳本測試,但是啟動(dòng)腳本的時(shí)間不會(huì)再電腦旁的時(shí)候,你可以設(shè)定一個(gè)啟動(dòng)的時(shí)間,然后再運(yùn)行那里點(diǎn)擊啟動(dòng),系統(tǒng)將不會(huì)立即運(yùn)行,而是會(huì)等到你填寫的時(shí)間才開始運(yùn)行。
結(jié)束時(shí)間:與啟動(dòng)時(shí)間對應(yīng),表示腳本結(jié)束運(yùn)行的時(shí)間。
持續(xù)時(shí)間:表示腳本持續(xù)運(yùn)行的時(shí)間,以秒為單位,比如如果你要讓用戶持續(xù)不斷登錄1個(gè)小時(shí),你可以在文本框中填寫3600。如果在1小時(shí)以內(nèi),結(jié)束時(shí)間已經(jīng)到達(dá),它將會(huì)覆蓋結(jié)束時(shí)間,繼續(xù)執(zhí)行。
啟動(dòng)延遲:表示腳本延遲啟動(dòng)的時(shí)間,在點(diǎn)擊啟動(dòng)后,如果啟動(dòng)時(shí)間已經(jīng)到達(dá),但是還沒有到啟動(dòng)延遲的時(shí)間,那么,啟動(dòng)延遲將會(huì)覆蓋啟動(dòng)時(shí)間,等到啟動(dòng)延遲的時(shí)間到達(dá)后,再運(yùn)行系統(tǒng)。
注意:如果我們需要用到調(diào)度器來設(shè)定持續(xù)時(shí)間,如果線程數(shù)不夠多到持續(xù)時(shí)間結(jié)束,我們必須將循環(huán)次數(shù)勾選為永遠(yuǎn),特別地,如果線程組里面有其他的循環(huán),我們也需將該循環(huán)次數(shù)勾選為永遠(yuǎn)(如我上面錄制的腳本中的Step1也是一個(gè)循環(huán),需要將永遠(yuǎn)勾選),否則,按我如上配置,將永遠(yuǎn)去掉勾選,文本里填1,那么無論你將持續(xù)時(shí)間啟動(dòng)時(shí)間結(jié)束時(shí)間等設(shè)置多少,系統(tǒng)運(yùn)行1000次后,將會(huì)停止不再運(yùn)行。
b、關(guān)于HTTP請求
關(guān)于HTTP請求,我們錄制的腳本里面有,這里介紹一些常用的屬性。
如圖所示:
點(diǎn)擊HTTP請求,將會(huì)出現(xiàn)如下界面:
其中:
名稱:可以隨意取,我們可以根據(jù)錄制腳本的路徑來命名
注釋:可以對該界面做一個(gè)簡單介紹
服務(wù)器名稱或IP:即我們的服務(wù)器或者IP的地址,我因?yàn)槭窃诒緳C(jī)上的項(xiàng)目,故填寫localhost,可以填寫127.0.0.1。
端口號:我用的是tomcat,自己設(shè)置的端口號為8086(tomcat默認(rèn)為8080)
后面的超時(shí)定義可以不用填寫。
Implementation:這里我們錄制時(shí)默認(rèn)填寫為JAVA
協(xié)議填寫為:http
方法為:GET
Content encoding:編碼可以不用填寫
路徑:即頁面的路徑;下面的重定向等選擇可以根據(jù)需要勾選,這里我們保持錄制不修改。
Parameters參數(shù):即跟著路徑一起發(fā)送的參數(shù)及文件
下面的代理服務(wù)器等可以忽略,按需要填寫。
c、參數(shù)化
如下,我們?yōu)檎埱蟀l(fā)送的參數(shù)來參數(shù)化。
上述的例子為登錄的用例,登錄有兩個(gè)參數(shù):EMAIL和DEVELOPER_PASSWORD,在實(shí)際測試中,當(dāng)我們需要用到不同的用戶來登錄的時(shí)候,我們可以用到參數(shù)化。
1)、我們新建一個(gè)文件,這里我新建的是一個(gè)txt文件,命名為c.txt,里面的內(nèi)容為
web@qq.com,111111
col@qq.com,111111
mon@qq.com,111111
2)、在jmeter中的【選項(xiàng)】中選擇【函數(shù)助手對話框】,將會(huì)彈出如下對話框:
其中:
CSV file to get values from | *alias:要讀取的文件路徑,為路徑
CSV文件列號| next| *alias:從第幾列開始讀取,注意第一列是0
如上圖所示,我們讀取的是c.txt里面的第一列用戶名(如果要讀取第二列的密碼,只需將0改成1即可,往后類推),點(diǎn)擊【生成】按鈕即可生成函數(shù),我們使用時(shí)即拷貝生成的函數(shù)字符串:${__CSVRead(E:c.txt,0)}。
其他函數(shù)后面介紹。
d、斷言驗(yàn)證
在web測試中,有的時(shí)候,即使我們測試返回的response code為200,也不能保證該測試是正確的,這時(shí)候,我們可以用到響應(yīng)斷言,通過對比響應(yīng)的內(nèi)容來判斷返回的頁面是否是我們確定要返回的頁面。
選擇我們要判斷的頁面,點(diǎn)擊添加斷言----響應(yīng)斷言,將會(huì)出現(xiàn)如下圖:
名稱:隨意,這里我們不做改動(dòng)
注釋:隨意
Apply to:這里我們選擇默認(rèn)值
要測試的響應(yīng)字段:這里我們選擇響應(yīng)的文本,即返回的頁面信息
模式匹配規(guī)則:這里我們選擇包括,即響應(yīng)的文本是否包括我們驗(yàn)證的信息
要測試的模式:開發(fā)者名稱,即我們需要驗(yàn)證,開發(fā)者名稱是否在響應(yīng)文本中存在,也可以添加更多的字段來驗(yàn)證。
其他還有文件大小和響應(yīng)時(shí)間等的斷言,后面介紹。
e、添加監(jiān)聽器
我們做性能測試的時(shí)候,經(jīng)常需要各種數(shù)據(jù)來驗(yàn)證我們的測試結(jié)果,Jmeter里面也提供了相關(guān)的功能,這里主要說一下Aggregate Report聚合報(bào)告。
點(diǎn)擊添加---監(jiān)聽器,選擇:查看結(jié)果樹,和聚合報(bào)告,如果需要看到斷言信息也可以選擇斷言結(jié)果,將設(shè)置的一切保存之后,然后點(diǎn)擊啟動(dòng),系統(tǒng)將會(huì)運(yùn)行,將結(jié)果在監(jiān)聽器中表現(xiàn)出來。