年后,德国总部工业平台要做中国本地化,德国的同事过来给我们展示日志的时候,无意间看到了他们应用日志里的 HTTP/2,下意识到,原来他们都已经提供Http 2.0的服务了。

那么问题来了,除了h2load这样的压测工具,可以模拟http/2的客户端以外,作为压测工具的业界大佬,因为灵活,支持多种协议,可测场景丰富而深受我喜爱的Jmeter,是否支持http 2.0呢?回答是肯定的,因为有人(非Apache官方)已经为写好了插件,亲测可用。
下面列出这个大神的github地址,Readme文档已经很详细的介绍了如何使用该插件。

如何真的不想点进去,可以看下面的快速安装和使用步骤 :

Quick Start : 快速安装使用

1.下载alpn-boot的jar包
因为Java 8 以及以下版本不支持http 2, 你需要在maven仓库里下载alpn-boot这个jar包,并把它的配置写入到JVM_ARGS配置里。需要注意的是:下载的apln-boot的版本必须跟你的java版本有对应关系。 比如我家里的jvm是1.8.0_144,我需要对应alpn-boot和jvm版本的对照表,下载相应的apln-boot版本8.1.11.v20170118。

比如我家里的电脑jvm版本是1.8.0_144
 
那么我需要下载20170118版本.png

2. 修改jmeter.bat或者jmeter.sh文件
比如,我把alpn-booot的文件放在了lib路径下,那么在jmeter.bat文件里添加:

set JVM_ARGS=-Xbootclasspath/p:%JMETER_HOME%/lib/alpn-boot-8.1.11.v20170118.jar

对于其他mac或者linux的用户,其实操作是一样的,在jmeter.sh文件添加:

JVM_ARGS="-Xbootclasspath/p:<path.to.jar>"

3. 安装http 2的插件

  • 如果以前没下载过jmeter plugin mamager的同学,需要先下载Plugins Manager JAR
  • 把该文件放在lib/ext
  • 重启jmeter,你将看到jmeter的插件管理中心在Options路径下
  • 打开avaliable plugins这页面,找到HTTP/2 Sampler, 点击安装,等待片刻...
 
Http/2 安装成功.png
  • 成功添加采样器HTTP 2 Request

     
    成功添加HTTP 2的采样器.png
  • 尝试用HTTP 2协议给www.taobao.com发送请求

 
jmx文件.png
  • 在View Result Tree Http2查看结果。 注意,http 2的结果要在Http 2里查看, 原因有兴趣的朋友可以看看如下:

The View Results Tree Listener isn’t fit for HTTP/2, which can send more than one request at the same time without waiting for a response. Using the regular listener means we won’t be able to see the responses of all asynchronous requests. To solve this problem, you can use the View Result Tree Http2. This specialized listener provides a way to visualize a request that has not received a response yet. These requests will be written in blue, as you can see in the image below. When the response is received, the writing will turn immediately to black, and you will be able to see the response message.

 
Taobao使用的是http 2协议.png

关于Http 2采样器上各个参数的含义和设置问题,还是一定要回头认真看看GitHub上的Readme,人家小哥哥写的很清楚哒。

重要的事情再说一次: GitHub Readme

以上。

本来想试试被Anoyi大神安利的压测工具: Gatling,可惜Gatling好像目前不支持Http 2,但是它用的并行框架AKKA的确很好的解决了Jmeter一个用户一个线程消耗资源的情况,但是貌似Devops更倾向用Gatling, 而专职测试的更喜欢Jmeter, 毕竟Jmeter的历史悠久,支持的协议和功能非常多。总之,很想尝试下Gatling带来的高并发的快感。

至于jmeter如何跟实时序列数据库influxdb传递实时测试数据,并把数据送到 grafana进行数据的展示,准备下周再写了。

作者:科学Jia
链接:https://www.jianshu.com/p/490ab46d8160
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

HTTP 2.0 之压测工具 Jmeter的更多相关文章

  1. 压测工具 jmeter入门教程及汉化修改

    Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工 ...

  2. 压测工具-Jmeter

    server压力测试首选: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 1 JMet ...

  3. 1. 堪比JMeter的.Net压测工具 - Crank 入门篇

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  4. 2. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  5. 3. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识bombardier

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  6. 4. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识wrk、wrk2

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  7. 5. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 接口以及场景压测

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  8. 6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  9. 7. 堪比JMeter的.Net压测工具 - Crank 总结篇 - crank带来了什么

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

随机推荐

  1. c# 第25节 方法重载

    本节内容: 1:方法重载简介 2:方法重载的实现实例 1:方法重载简介 2:方法重载的实现实例 决定方法是否构成重载有三个条件: 1:在同一个类中 2:方法名相同 3:参数列表不同 实例例子: 实现:

  2. day59_9_25中间键与登录认证

    一.django中间件简介. 在django中,有这样的生命周期: 中间件就是处于wsgiref和urls模块中间,可以拦截所有的请求,其中有7个默认中间件: MIDDLEWARE = [ 'djan ...

  3. 对象锁和class锁

    对象锁:就是这个锁属于这个类的对象实例,可以通过为类中的非静态方法加synchronized关键字 或者使用 synchronized(this) 代码块,为程序加对象锁. Class锁:就是这个锁属 ...

  4. java使用poi(XSSFWorkbook)读取excel(.xlsx)文件

    经过一番搜索发现,java操纵excel文件常用的有jxl和poi两种方式,孰好孰坏看自己需求而定.其中最主要的区别在于jxl不支持.xlsx,而poi支持.xlsx这里介绍的使用poi方式(XSSF ...

  5. django haystack报错: ModuleNotFoundError: No module named 'blog.whoosh_cn_backend'

    在配置django haystack时报错: 解决方案: 将ENGINE的值 改为 这样就可以了.

  6. 通过channel实现同步和数据交互

    package main import ( "fmt" "time" ) func main(){ //创建channel ch := make(chan st ...

  7. 【day02】Xhtml

    一.HTML实体(HTML Entites) 1.HTML实体:W3C规定在浏览器看到的特殊符号必须用HTML实体  单引号(') ===== '  双引号(") ===== "  ...

  8. python 机器学习基础教程——第一章,引言

    https://www.cnblogs.com/HolyShine/p/10819831.html # from sklearn.datasets import load_iris import nu ...

  9. java虚拟机规范学习笔记之数据类型

    1.1 class文件格式 编译后被Java虚拟机所执行的代码使用了一种平台中立的二进制格式来表示,并且经常以文件的形式来存储,这种格式称为class文件格式.class文件格式中精确的定义了类与接口 ...

  10. Shell基本运算符之文件测试符

    文件测试运算符 ================摘自菜鸟教程================= 文件测试运算符用于检测UNIx文件的各种属性: 操作符 说明 例子 -b 检测文件是否是块设备文件,如果 ...