Jmeter測試地圖服務(wù)性能(二)--使用Jmeter對地圖服務(wù)進(jìn)行壓力測試
一、前言廢話
?????????Jmeter可以用來模擬多用戶來訪問http(s)請求派继,并返回訪問結(jié)果宾袜,而地圖服務(wù)歸根結(jié)底仍是個(gè)http(s)請求。所以我們可以使用Jmeter對地圖服務(wù)進(jìn)行壓力測試驾窟。
? ? ? ? 當(dāng)然地圖服務(wù)也有著它的特殊性庆猫,對于一般的網(wǎng)頁服務(wù)用戶是打開,瀏覽绅络,跳轉(zhuǎn)月培,關(guān)閉這些步驟。而對于一個(gè)地圖服務(wù)來說用戶除了以上的操作外還會(huì)不停的去放大縮小恩急、拖拽地圖杉畜。因此頁面上的數(shù)據(jù)也會(huì)不停的改變所以我們要充分考慮其特殊性來設(shè)計(jì)壓力測試。
二衷恭、測試步驟
1.創(chuàng)建一個(gè)測試計(jì)劃此叠,自定義其名稱和注釋,并將測試計(jì)劃文件保存在文件目錄下随珠。
2.添加線程(組)灭袁,設(shè)置線程組參數(shù)。線程組模板多樣而且支持插件拓展窗看,本文選取steping thread group作為例子茸歧。
JMeter是由Java實(shí)現(xiàn)的,并且使用一個(gè)Java線程來模擬一個(gè)用戶显沈,因此線程組(Thread Group)就是指一組用戶的意思软瞎,換句話說一個(gè)線程組就是一組虛擬用戶(virtualusers),這些虛擬用戶用來模擬訪問被測試系統(tǒng)构罗。
名稱:線程組的名稱
注釋:線程組注釋
采樣器錯(cuò)誤后執(zhí)行的動(dòng)作:分為繼續(xù)铜涉、開始下一個(gè)進(jìn)程循環(huán)、停止線程遂唧、停止測試芙代、立刻停止測試五種。常用的為繼續(xù)和停止測試兩種盖彭。
繼續(xù):報(bào)錯(cuò)纹烹,并進(jìn)行本線程組的下一個(gè)線程測試页滚。
開始下一個(gè)進(jìn)程循環(huán):報(bào)錯(cuò)并停止本線程組的測試進(jìn)入下一個(gè)線程組的測試。
停止線程:報(bào)錯(cuò)并停止所有的線程組測試铺呵。
停止測試:報(bào)錯(cuò)并停止測試任務(wù)裹驰,包括測試數(shù)據(jù)的收集器的工作。
立刻停止測試:立刻停止jmter向服務(wù)器收發(fā)請求片挂。
在Steping Thread Group線程組中一下參數(shù)需要設(shè)置:
This? group will start: 本次測試中將啟動(dòng)的最大線程數(shù)幻林。
First wait for: 啟動(dòng)第一個(gè)線程之前等待的時(shí)間。
Then start: 第一次啟動(dòng)的線程數(shù)音念。
Next add: 啟動(dòng)后每次增加的線程數(shù)沪饺。
Threads every: 兩次增加線程數(shù)的時(shí)間間隔。
Using? ramp-up: 增加線程數(shù)的時(shí)間闷愤。
Then hold load for: 增加到最大線程數(shù)后持續(xù)的時(shí)間整葡。
Finally stop: 停止過程中每次減小的線程數(shù)。
Threads every: 兩次減小線程數(shù)的時(shí)間間隔讥脐。
3.添加測試請求遭居,并設(shè)置參數(shù)。
測試請求是性能測試中向服務(wù)器發(fā)送請求旬渠,記錄響應(yīng)信息俱萍,記錄響應(yīng)時(shí)間的最小單元。在ArcGIS Server中指通客戶機(jī)過一次HTTP(S)向服務(wù)端一次請求返回的結(jié)果坟漱。
協(xié)議:http(s)
服務(wù)器名稱或IP:填寫ArcGIS server 對應(yīng)的服務(wù)器名稱或IP地址鼠次,要保證測試客戶機(jī)和服務(wù)器網(wǎng)絡(luò)通暢更哄。
端口:所測試http(s)請求的端口號(hào)芋齿。在ArcGIS Server中http對應(yīng)6080,https對應(yīng)6443成翩。
路徑:填寫測試的http(s)服務(wù)端口號(hào)后的部分觅捆。
4.設(shè)置ArcGIS自定義參數(shù)
同請求一起發(fā)送的參數(shù):
F:返回類型,支持html | json | image | kmz四種格式麻敌,我們請求的是圖片栅炒,選擇f=image即可;
Bbox:地圖的左下角坐標(biāo)和右上角坐標(biāo)术羔,排列順序是<xmin>,<ymin>, <xmax>, <ymax>赢赊。例如bbox=-104,35.6,-94.32,41;
Size:返回圖片的大小级历,寬度和長度释移,例如:size=600,550;
imageSR:請求圖片的坐標(biāo)系統(tǒng)寥殖;
format:請求圖片的格式玩讳,有以下幾種:png | png8 | png24 |jpg | pdf | bmp | gif | svg | png32
layers:請求圖片的圖層涩蜘,有四個(gè)關(guān)鍵詞:show(顯示)hide(隱藏)include(包括)exclude(不包括);例如:show:1(表示顯示第一層數(shù)據(jù))熏纯,同樣hide:1(表示隱藏第一層數(shù)據(jù))同诫;
layer Definitions:表示獲取滿足當(dāng)前條件的數(shù)據(jù),相當(dāng)于where條件或者是Filter樟澜;例如:layerdefs=0:COM1='COPPER'(表示第0層误窖,字段COM1中的值等于“COPPER”的所有要素);
transparent:透明度秩贰,只對png格式有效贩猎;
5.通過Bbox參數(shù),模擬用戶移動(dòng)萍膛、放大縮小地圖吭服。
Bbox參數(shù)可以隨http請求發(fā)送一個(gè)矩形范圍,來讓服務(wù)器返回對應(yīng)矩形范圍內(nèi)的數(shù)據(jù)蝗罗。通過Bbox參數(shù)傳入不同大小的矩形范圍和不用位置的矩形范圍來模擬用戶不斷的放大縮小和拖拽地圖艇棕。Bbox中參數(shù)為地圖的左下角坐標(biāo)和右上角坐標(biāo),排列順序是<xmin>,<ymin>, <xmax>, <ymax>串塑。首先需要一個(gè)生成的隨機(jī)矩形范圍的數(shù)據(jù)沼琉,可以是txt或者csv。
填寫隨機(jī)網(wǎng)格數(shù)據(jù)配置參數(shù)
變量名稱:CSV文件中的表頭名稱桩匪,用英文逗號(hào)隔開
忽略首行:選擇true
在設(shè)置請求中添加Bbox參數(shù)打瘪,將四個(gè)坐標(biāo)參數(shù)使用${}引用,填寫格式為${XMin},${YMin},${XMax},${YMax}傻昙。勾選編碼選項(xiàng)
6闺骚,添加監(jiān)聽器收集測試結(jié)果。
監(jiān)聽器是用來對測試結(jié)果數(shù)據(jù)進(jìn)行處理和可視化展示的一系列元件妆档,如圖形結(jié)果僻爽、查看結(jié)果樹、聚合報(bào)告等都是常用的監(jiān)聽器贾惦。由于Jmeter是開源軟件胸梆,社區(qū)中共享了大量的監(jiān)聽器用于測試結(jié)果的可視化,此處只介紹最常見的三種其他的有待大家去探索。
添加監(jiān)聽器须板,配置監(jiān)聽器輸出的文件路徑碰镜。
啟動(dòng)jmeter,查看測試結(jié)果习瑰。