年后,德国总部工业平台要做中国本地化,德国的同事过来给我们展示日志的时候,无意间看到了他们应用日志里的 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. 工具资源系列之 github 上各式各样的小徽章从何而来?

    前言 平时大家在在逛 github 时或多或少都看到过项目首页各式各样的小徽章,不知道你是否和我一样好奇这些小徽章都是哪来的呢? 首先我们先来一睹为快目前前端开发的三大主流框架: var ,看一看他们 ...

  2. Python 协程 (Coroutine)

    协程 (Coroutine) 什么是协程 协程(微线程)是比线程更轻量化的存在,像一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程 最重要的是,协程不是被操作系统内核所管理,而完全是由程序所控 ...

  3. 【2019.8.11下午 慈溪模拟赛 T2】数数(gcd)(分块+枚举因数)

    莫比乌斯反演 考虑先推式子: \[\sum_{i=l}^r[gcd(a_i,G)=1]\] \[\sum_{i=l}^r\sum_{p|a_i,p|G}\mu(p)\] \[\sum_{p|G}\mu ...

  4. Redis的Sorted-Sets排行榜功能实现

    Redis的ZSet排行榜功能实现 1. 功能需求 类似给用户n张图片, 用户左滑不喜欢右滑喜欢.所以每个用户就会有一些喜欢的图片集合和不喜欢的图片集合.现在我们要做一个将按照一个算法将喜欢的排到前面 ...

  5. vs2017 升级后无法启动 z

    Visual Studio 2017 无法启动,进程中却有devenv.exe运行的解决办法 双击Visual Studio 2017,系统没有响应,在任务管理器中却发现devenv.exe 已经在运 ...

  6. ES6中有关数组的一些新操作

    1.Array.isArray() 用于确定传递的值是否是一个 Array. Array.isArray([1, 2, 3]); // true Array.isArray({foo: 123}); ...

  7. maven pom项目的dependencies转gradle格式

    1.新建一个文件件 2.创建pom.xm,放到新建的文件夹中 3.在命令行切换到新建文件夹中,执行: gradle init --type pom

  8. tensorflow: arg_scope()

    with arg_scope(): 1.允许我们设定一些共享参数,并将其进行保存,必要时还可以嵌套覆盖 2.在指定的函数调用时,可以将一些默认参数塞进去. 接下来看一个tensorflow自带的例子. ...

  9. Entity Framework Core 练习参考

    项目地址:https://gitee.com/dhclly/IceDog.EFCore 项目介绍 对 Microsoft EntityFramework Core 框架的练习测试 参考文档教程 官方文 ...

  10. 5分钟上手:本地开发环境启动HTTPS

    今天我们访问的所有网站几乎都是受HTTPS保护的.如果你的站点还没有,那你应该使用它.使用HTTPS保护服务器也意味着你不能从不是HTTPS服务器向此服务器发送请求.这给使用本地开发环境的开发人员带来 ...