jmeter簡單入門
背景
在工作中總是會遇到一些需要幾十或是過百條數(shù)據(jù),作為調(diào)用方只能調(diào)接口,無其他權(quán)限。比如,我需要添加很多張優(yōu)惠券,很多個商品,我想的就是怎么調(diào)接口添加這些,也許自己編寫接口,也是一種方法,但是實際中在編寫代碼時,如果是第一次編寫,你需要組裝接口本身參數(shù),需要登錄的話,還得調(diào)登錄接口。稍稍耗時,如果是已經(jīng)有相關(guān)框架,那也是快的。所以就在網(wǎng)上查了相關(guān)資料,發(fā)現(xiàn)jmeter可以解決該問題。
準備工作
我是一個從未用過jmeter的人,所以得一步步來。
安裝jmeter
mac 環(huán)境下安裝jmeter 是非常簡單的,這里給出網(wǎng)上一篇介紹詳細的安裝步驟。jmeter mac 安裝
jmeter基礎(chǔ)
主要基礎(chǔ)組件
jmeter的組件有:測試計劃、線程組、配置元件、邏輯控制器、取樣器、斷言、監(jiān)聽器、正則表達式提取器
關(guān)于這些組件的介紹,本人也是從網(wǎng)上查閱相關(guān)資料獲取。這里給出兩個比較詳細的文章介紹jmeter基本組件介紹1,jmeter基礎(chǔ)概念。
如果要添加一個簡單的請求,整個步驟就是:
- 添加一個測試計劃
- 在測試計劃中添加一個線程組
- 線程組中添加各種請求(sample)+元件+邏輯控制器
- 有了請求后就可以其他組件(斷言、后置處理器)等
實踐
這次主要是因為碰到一個添加優(yōu)惠券的需求,需要很多優(yōu)惠券,如果自己一個一個手動創(chuàng)建實在是太耗時間了,所以就想著用jmeter 實現(xiàn)一下。
jmeter請求目錄
在testplan(試用一下jmeter)中添加了 cookie引用的線程組。創(chuàng)建優(yōu)惠券必須先登錄,所以想的是先模擬登錄,在用優(yōu)惠券接口引用返回的登錄的Cookie的信息,這樣優(yōu)惠券就可以正常創(chuàng)建了。
登錄請求
添加邏輯控制器
因為一旦登錄成功,無需在次登錄,所以我先添加了一個僅一次控制器(右擊-添加-邏輯控制器-僅一次控制器)
添加Login請求
通過我們的H5頁面的登錄,通過瀏覽器的調(diào)試模式(打開chrom瀏覽器-打開登錄頁頁面-右擊檢查-選擇network)輸入用戶名、密碼可以查看登錄的具體請求,相關(guān)入?yún)⒁簿鸵荒苛巳涣恕T诰€程組控制器下面,添加Login請求(右擊-添加-sampler-http請求),然后按照抓包下來的信息來填寫:協(xié)議、域名、有端口號需要填寫端口號,沒有則不填寫,請求方法選擇為post與請求路勁。具體見圖
為login請求添加監(jiān)聽器
選中Login請求-右擊添加-監(jiān)聽器-查看結(jié)果數(shù)。當請求發(fā)出時可以查看請求是否正確,我并沒有添加斷言,因為如果一旦登錄失敗,在優(yōu)惠券接口是回報對應(yīng)的loginerror信息,而我在優(yōu)惠券中是有斷言的所以就省掉了。
添加cookie管理器
后續(xù)請求需要用到登錄的Cookie,所以需要添加cookie管理器,這樣可以實現(xiàn)第二個請求直接使用本地Cookie,從而免登。在cookie管理器中將cookie Policy設(shè)置未為standard。見下圖。
前期登錄準備工作已經(jīng)全部完成,可以正常獲取到cookie信息
創(chuàng)建優(yōu)惠券
優(yōu)惠券請求構(gòu)造
抓包獲取請求想關(guān)數(shù)據(jù),這有一個不一樣的地方,我們的請求是個jsonboject,在參數(shù)的時候,我們用的是BodyData。見下圖。
添加header
將cookie信息存在請求頭中,格式是APPlication/json,添加方式:右擊請求-添加配置原件-http信息頭管理器。
添加查看結(jié)果樹
與登錄一致
添加斷言
響應(yīng)斷言
只是看到請求是否可以正常發(fā)出,響應(yīng)斷言就足夠了,這里是返回的code是0,說明請求是正常的。響應(yīng)斷言添加:右擊請求-添加-斷言-響應(yīng)斷言。
JSON Path Asseertion
雖然響應(yīng)斷言可以滿足本次的需求,但是想到很多接口的返回均是json格式。最好是可以json進行斷言,所以就嘗試進行json Path 進行斷言。jmeter并沒有自帶JSON path斷言。安裝教程在網(wǎng)上有比較詳細的教程。
我的安裝是通過pulgins-manager進行安裝,主要是有個插件管理器,以后如果需要其他插件也可以方便使用。
- 進入https://jmeter-plugins.org/downloads/all/ plugins-manager.jar包下載,下載置于解壓的jmeter目錄lib/ext下。然后重啟jmeter
- 重啟后在選項menu下有個plugins-Manager ,點擊該選項,進入插件管理器,在Availables Plugins 搜索Json plugins 進行安裝。
這里再附上一個網(wǎng)上教程。添加JOSN斷言。
斷言添加成功后,右擊-添加-斷言,有新的斷言JSON Path Assertion出現(xiàn)。
添加 JSON path Asserttion
添加方式同響應(yīng)斷言,原理是我要獲取到code(實際值),與期望值進行相等判斷。響應(yīng)斷言是String類型匹配斷言。code值是從respond中獲取到的,采用的是JSONPath語法,需要了解基本JSONPath 語法。JSONPath入門語法這里給出我的斷言。
運行結(jié)果
點擊啟動按鈕,請求開始發(fā)出,可以看到login請求發(fā)出一次,而創(chuàng)建優(yōu)惠券發(fā)出兩次請求,這是因為我的循環(huán)次數(shù)設(shè)置為2,但是登錄添加了僅一次控制器。
備注:
整個請求,我沒有對參數(shù)做任何的修改,但是實際中,我們經(jīng)常需要變更參數(shù),所以在后續(xù)會單獨就參數(shù)化做一個學(xué)習(xí)實踐。