jmeter支援http2協議請求
阿新 • • 發佈:2018-12-31
前言:最近有小夥伴問到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也必定會有相應更新,一起期待吧。
以上。還是挺簡單的(逃)。