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。
前往http://mvnrepository.com/artifact/org.mortbay.jetty.alpn/alpn-boot 下載對應版本的jar包保存到本地。

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也必定會有相應更新,一起期待吧。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章