Jmeter有豐富的組件,邏輯控制器、配置原件、Sampler、定時器、前置處理器、後置處理器、斷言、監聽器;而編寫腳本必定要養成我的習慣,讓人看到Jmeter的腳本目錄結構樹可以一目瞭然;所以,首先須要瞭解的是協議、以及Jmeter的元件執行順序來做爲參考,養成本身的書寫習慣。線程
嗯。。關於協議部分,在協議分類隨筆中進行記錄,本篇就書寫習慣以及一個完整的Jmeter腳本應該包含什麼作以記錄。調試
Jmeter組件執行順序:(摘自《全棧Jmeter》)blog
一、配置原件(若是存在)百度
二、前置處理器(若是存在)配置
三、定時器(若是存在)渲染
四、取樣器(若是存在)循環
五、後置處理器(若是存在且取樣器的結果不爲空)全棧
六、斷言(若是存在且取樣器的結果不爲空)request
七、監聽器(若是存在且取樣器的結果不爲空)定時器
而一個完整的Jmeter(此處以HTTP協議爲例)腳本應該包含哪些組件呢?
衆所周知,HTTP協議結構(request)中包含請求頭、請求行、請求數據,那麼在Jmeter中實現HTTP請求也必然須要進行模擬一個完整的請求才能獲得響應。而在編寫Jmeter腳本的時候便須要養成良好的習慣,結構樹一目瞭然,不管是工做,仍是須要其餘人來解決問題,相信都能快速的定位。所以,須要將Jmeter的組件執行順序以及協議結構相結合,組成一個完整的腳本。
OK,一個簡單的訪問百度頁面的例子就OK了,固然直接訪問百度首頁不須要任何參數,所以下方請求數據不須要填寫;值得一提的是此處的協議和端口號,若是在協議處填寫https,那麼端口號是能夠不填的,由於它會本身默認爲443(https的默認端口號);固然,直接填寫http,後邊的端口號也會默認爲80的。
固然,此處例子中在「HTTP信息頭管理器」中是什麼都沒有填寫。能夠在下方的監聽器看得出來:
至於在什麼狀況下會加入信息頭信息,信息頭中涉及到哪些信息,見下文;
能夠從上圖看得出來,一個完整的Jmeter腳本至少要包含一個線程組、一個請求,監聽器;線程組可進行設置循環、線程數;Sampler中配置請求地址、協議、參數等;監聽器來進行監聽請求以及響應內容;
能夠切換查看的響應方式,吶、這個就是百度的原始頁面了;能夠看到的是並無HTML、CSS等頁面渲染元素;
So,這即是一個完整的HTTP請求的Jmeter腳本。
能夠看得出來,(除去線程組)是將配置原件放在了第一位,接着是請求,監聽器;並無像錄製的腳本同樣,將信息頭一類的配置元件放入Sampler下一級,調試都不容易,試着找個問題都眼花繚亂。
所以,自行編寫時必定要養成良好的習慣,最起碼是要有調試方便,井井有條的優勢。