1. 程式人生 > >jmeter支援http2協議請求

jmeter支援http2協議請求

前言:最近有小夥伴問到jmeter怎麼傳送http2協議的請求,雖然現在http1.1是主流,只有少數幾家大廠用到h2協議,但還是研究了下,做個準備,說不定哪天就用上了。

進入正題。

1.為jmeter安裝 HTTP/2  Sampler取樣器外掛。


安裝完成後,jmeter即可新增h2協議的取樣器,如圖

2.jdk1.8及以下版本不支援h2協議,需要依賴alpn-boot.jar。

需要注意的是,jdk小版本和alpn-boot.jar的小版本是一一對應的,對應關係可前往該網站檢視:如筆者的jdk版本為1.8.0_101,對應的alpn-boot的版本是8.1.9.v20160720。
3.windows修改jmeter.bat檔案,在檔案中加入set JVM_ARGS= -Xbootclasspath/p:<path.to.jar>
如:set JVM_ARGS= -Xbootclasspath/p:E:/alpn-boot-8.1.9.v20160720.jar
linux/macos 修改jmeter.sh檔案,在檔案中加入set JVM_ARGS= -Xbootclasspath/p:<path.to.jar>
如:set JVM_ARGS= -Xbootclasspath/p:~/jar/alpn-boot-8.1.9.v20160720.jar

4.啟動jmeter,新增h2取樣器,以m.jd.com為例,如圖:


執行,檢視結果樹,請求成功:


另外,需要注意的是,h2是一個非同步協議,這意味著client不必等待伺服器的響應來繼續通訊。因此,如果我們想要將斷言或後處理器新增到h2請求中,即 處理響應,我們需要選中h2取樣器中的複選框Synchronized Request來讓jmeter在傳送更多請求之前需要等待直到收到響應。這個問題我覺得隨著jdk1.9或更高版本的普及,httpclient支援h2協議是遲早的事,jmeter也必定會有相應更新,一起期待吧。

以上。還是挺簡單的(逃)。