zoukankan      html  css  js  c++  java
  • HTTP2 Sampler for JMeter

    今天开发大大说能不能帮忙压一下HTTP2的链接,便去查了一下相关的东西。

    HTTP 2.0 的出现,相比于 HTTP 1.x ,大幅度的提升了 web 性能。在与 HTTP/1.1 完全语义兼容的基础上,进一步减少了网络延迟。而对于前端开发人员来说,无疑减少了在前端方面的优化工作。

    HTTP/2: the Future of the Internet 这是 Akamai 公司建立的一个官方的演示,用以说明 HTTP/2 相比于之前的 HTTP/1.1 在性能上的大幅度提升。 同时请求 379 张图片,从Load time 的对比可以看出 HTTP/2 在速度上的优势。

     
    image.png

    HTTP1.1 HTTP 2.0主要区别

    多路复用


    HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。当然HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。TCP连接有一个预热和保护的过程,先检查数据是否传送成功,一旦成功过,则慢慢加大传输速度。因此对应瞬时并发的连接,服务器的响应就会变慢。所以最好能使用一个建立好的连接,并且这个连接可以支持瞬时并发的请求。
    关于多路复用,可以参看学习NIO

    数据压缩


    HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。

    服务器推送


    意思是说,当我们对支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。服务器端推送的这些资源其实存在客户端的某处地方,客户端直接从本地加载这些资源就可以了,不用走网络,速度自然是快很多的。

    好了,闲话少叙,切入正题!

    1.下载安装HTTP/2 Sampler插件

     
    HTTP/2 Sampler.png

    2.重启jmeter之后,就可以看到相应的Sample和Listener了,但直接使用时,发现如下报错:

     
    报错.png

    回过头查看HTTP/2 Sampler.png截图中的github项目链接:


     
    image.png

    原来Java 8本身不支持HTTP / 2,因此需要确保在系统上具有alpn-boot并编辑JVM_ARGS.

    3.下载alpn-boot包

    访问https://www.eclipse.org/jetty/documentation/9.4.x/alpn-chapter.html,查看不同的jdk版本对应的alpn的版本号:

     
    image.png

     
    我的jdk对应版本.png

    maven仓库下载对应版本的jar包:


     
    image.png

    4.修改jmeter.bat文件

    在jmeter.bat文件的起始行添加如下代码:

    set JVM_ARGS= -Xbootclasspath/p:D:apache-jmeter-4.0libextalpn-boot-8.1.9.v20160720.jar
    
     
    image.png

    5.再次重启jmeter并运行之前的脚本,就没问题了

     
    image.png


    作者:呆呆冬
    链接:https://www.jianshu.com/p/288da84807b3
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    Spine学习四
    Spine学习三
    用 C 语言开发一门编程语言 — 基于 Lambda 表达式的函数设计
    用 C 语言开发一门编程语言 — 变量元素设计
    用 C 语言开发一门编程语言 — Q-表达式
    C 编程异常 — double free or corruption (fasttop)
    用 C 语言开发一门编程语言 — S-表达式
    用 C 语言开发一门编程语言 — 异常处理
    用 C 语言开发一门编程语言 — 抽象语法树
    用 C 语言开发一门编程语言 — 语法解析器
  • 原文地址:https://www.cnblogs.com/a00ium/p/10462572.html
Copyright © 2011-2022 走看看