“千舉萬變,其道一也。不離於宗,謂之天人”
----《荀子·儒效》和《庄子·天下》
作為接口測試工具
Jmeter只是作為發起請求的客戶端(可以理解為前端),Jmeter是作為組裝請求報文結構的容器,例如:請求行、請求頭、請求數據;並可將響應結果進行可視化展示。對於接口的復雜邏輯Jmeter有豐富的插件進行支持,前/后置處理,斷言元件、第三方插件、也可以自行開發插件。
考察點:對協議的理解程度,例如http(s)、TCP、SOAP、DUBBO等常見協議,熟悉了解其請求報文以及響應報文結構則可知其本質
作為錄制工具
其錄制功能本質為通過監聽某個端口,讓代理捕獲監聽端口的報文信息,對抓取的報文進行格式化轉換為對應的行為函數,而腳本進行回放時,就用函數方法去模擬客戶端與服務端的通信過程。
說的明白點,就是將瀏覽器(前端)的所有請求保存下來,而監聽手段便是設置代理,其他的抓包工具fiddler、Charles等原理都為一致。fiddler打開便啟動默認代理(代理端口8888),Jmeter則是需要去設置代理服務器,其原理一致。
考察點:對錄制本質的理解,這也是對當下測試人員的一個階段性的考驗,初級測試人員學習工具的初衷究其根本:不想寫代碼!托拉拽能搞定的不會寫一行代碼,錄制便是這種類型的一種體現。
作為性能測試工具
Jmerer是模擬負載的工具,通過多線程模擬服務器訪問壓力。眾所周知,性能測試中腳本以及加壓工具並非重點,因為可擇加壓方式有很多,如LR、locust、自行編碼,腳本編寫相對容易,其核心點在於針對數據的分析,而完成分析工作則需要審查對業務架構、系統架構、業務邏輯、接口邏輯、需求調研分析、數據准備、同步/異步監控(JVM、服務器)准備等等前置工作的鋪底程度,而Jmeter在編寫腳本以及服務器同步監控(有插件支持、也可集成influxdb+Grafana)階段可完成。
考察點:對性能測試的理解,學習過性能測試的童鞋應該都知道:性能測試≠工具or代碼,性能測試是一個比較寬泛的領域,僅僅說某種工具或者說某種代碼能搞定的,顯然是不太現實的。
因此考察what,回答what,如何回答,首先要理解其本質,萬變不離其宗!見招拆招方可達道境三十三重天!