Jmeter實戰

Jmeter實戰

入門篇

一、下載與使用

下載地址:http://jmeter.apache.org/download_jmeter.cgijava

開源,基於java編寫,因此得有jdk(jre)環境,下載完成直接解壓,進入bin目錄運行jmeter便可正則表達式

各個平臺都差很少, 點開以後進入主界面apache

能夠經過 選項欄選擇語言json

接下來就能夠進行測試工做了。後端

二、經常使用組件

由於我是用範圍主要是測試http接口,其實主要就是測我本身寫的接口,因此我就講我用到的服務器

1)線程組

測試計劃-添加-threads-線程組
由於咱們的組件都是跑在線程上, 這裏能夠經過線程組模擬用戶數量等。cookie

2)觀察結果樹

線程組-添加-監聽器-觀察結果樹
這個組件用於調試觀察咱們的測試請求,能夠看到接口響應,一會講。函數

3)http請求

線程組-添加-sample-http請求工具

這時候,咱們一次請求須要的基本組件就這麼多, 以百度爲例。測試

咱們在服務器域名上輸入被測系統的域名,路徑就是接口路徑,能夠在Parameters裏面添加參數。

以後點擊運行, 就能夠在 觀察結果樹 裏面看到接口返回的信息了

能夠清楚地看到響應頭和響應數據,而且jmter支持直接用一些格式解析響應數據

這個就根據需求選擇了, 通常rest接口都是json,直接默認text就能夠。

關於http協議的知識就不贅述了。

cache 和 cookie是http中常常須要使用的組件,與後端交互每每須要帶上cookie的數據才能獲取理想的響應。

直接 添加-配置元件便可。

關於cookie囉嗦一句, 若是模擬多用戶, 最好每次都清除cookie,這樣結果比較準確, 由於你帶着cookie訪問後端的邏輯會不同,
固然這些都創建在你瞭解被測系統的基礎上作決定。

5)測試數據

數據的準備通常直接從測試庫down下來便可,

轉成csv格式,很簡單相似於這樣

而後 選項-函數助手對話框

csv file的值就是文件路徑。
文件列號就是,要用第一列就填0,第二列就寫1,以此類推。而後點生成

以後在想用到數據的地方,拷貝生成的字符串就好了,例如。

這個用戶名就能夠每次變化了。

6)腳本的錄製

由於一個個添加請求太麻煩,出錯率也高,(好吧主要是懶)。
有兩種錄製方法
1.badboy工具
2.http代理服務器。
這兩種方法有不少博客了。
由於我沒找到mac版的badboy,我就用了代理服務器,其實原理差很少,也挺方便。

7)正則表達式提取器

腳本錄製完還沒結束,由於不少請求的參數是依賴於上一個請求的(好比說第一個接口是返回用戶id,第二個接口是經過id獲取詳細信息。 )
那麼顯然,咱們每次傳的id都不會相同,由於用戶不一樣。 由於在真實環境中,這些id每每由js來控制寫入請求參數裏面,而jmeter沒法執行這些js。這就要讓測試人員認真過一下每一個接口,看看是否有相似的狀況。 若是有,那麼咱們就用正則提取器來提取這個「id」。供下一步使用。

好比這個響應json的st須要給下一步使用,這個st就是「id」

那麼 咱們在http請求裏添加-後置處理器-正則表達式提取器

引用名稱就是起個名字,正則表達式須要本身寫,
模板是使用提取到的第幾個值。由於可能有多個值匹配,因此要使用模板。從 1 開始匹配,依次類推。這裏只有一個,因此填寫 $1$ 便可;
匹配數字表示如何取值。0 表明隨機取值,1 表明所有取值。這裏只有一個,填 1 便可;
缺省值表示參數沒有取到值的話,默認給它的值。通常不填。

接下來在使用到id的地方直接寫 ${ST} 就能夠了, 和上面測試數據的是一個意思。

8)聚合報告

以上基本能夠完成一次自動化的測試了, 模擬用戶數量直接在線程組裏設置便可, 而後添加一下聚合報告,啓動測試,就能夠查看結果了。 別忘記先禁用 觀察結果樹 ,這樣會省不少的資源。 over。

相關文章
相關標籤/搜索