年后,德国总部工业平台要做中国本地化,德国的同事过来给我们展示日志的时候,无意间看到了他们应用日志里的 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. Es6编程风格

    let 取代 var let 和 const 之间优先使用 const 字符串 静态字符串一律使用单引号或反引号,不使用双引号 动态字符串使用反引号 `` 解构赋值 使用数组成员对变量赋值时,优先使用 ...

  2. 鲜贝7.3--Xshell安装

    安装包百度云下载地址:https://blog.csdn.net/yueruitao/article/details/85263968 具体方法请参考: https://blog.csdn.net/q ...

  3. xargs 用法理解

    原来一直不理解,linux shell下 xargs和 管道的区别: 1.管道在linux shell用得比较广泛,管道常常用来组合两个及以上的命令,共同完成一个功能: 比如:我们要统计某一个文件有多 ...

  4. 【2019.8.14 慈溪模拟赛 T1】我不是!我没有!别瞎说啊!(notme)(BFS+DP)

    \(IDA^*\) 说实话,这道题我一开始没想出正解,于是写了一个\(IDA^*\)... 但神奇的是,这个\(IDA^*\)居然连字符串长度分别为\(2500,4000\)的数据都跑得飞快,不过数据 ...

  5. vue_04 练习

    目录 vue_项目初始: car.vue Nav.vue: cardata.vue vue_项目初始: 1.Home.vue页面组件显示基本信息:欢迎来到汽车系统 Car.vue页面组件,完成Cars ...

  6. 微信小程序跳转web-vie时提示appId无法读取:Cannot read property 'appId' of undefined

    微信小程序报web-view错无法读取appId:Cannot read property 'appId' of undefined 问题描述: 我以前一直如下写代码没报错也都是可以使用的,并且小程序 ...

  7. tensor 中mul_,add_解读

    pytorch 中文网文档链接 https://ptorch.com/docs/1/Tensor 每一个张量tensor都有一个相应的torch.Storage保存其数据,张量类提供了一个多维的,横向 ...

  8. 【shell脚本】检测当前用户是否为超级管理员===checkRoot.sh

    检测当前用户是否为超级管理员,是则使用yum安装vsftpd,不是则输出提示信息 脚本赋予执行权限 [root@VM_0_10_centos shellScript]# chmod a+x check ...

  9. 简明了解apply()和call()

    apply()和call()都是ES6语法的,并且都是函数的方法. function foo() { alert(this.name) } var obj = { name: '小明' } foo() ...

  10. 明解C语言 中级篇 第一章答案

    练习1-1 #include <stdio.h> #include<stdlib.h> int main() { srand(time()); ; printf("您 ...