h2load HTTP2 性能测试 - Go语言中文社区

h2load HTTP2 性能测试


项目用到http2性能测试,经研究,开源软件jmeter不能很好的支持,因为jmeter的http2只支持发送https的请求,而项目是用到非加密的http,故无法使用。后来经查找,发现h2load【官网:https://nghttp2.org/documentation/h2load-howto.html】能很好的进行http2的性能测试,示例如下:

因为网上对于h2load的资源比较少,这里简单记录一下我的使用方法理解及踩过的坑:

1.安装

apt install nghttp2-client  就好了

检查是否安装成功【查看帮助文档】:

2 使用方法:

1)GET

直接h2load加上url即可,后面不加 -n -c -r 之类的参数则表示使用的默认参数,如-n -c -r 默认都是1

h2load http://172.19.0.3:80/metrics

2)POST/PUT/DELETE方法

h2load 携带data数据方法是:-d 后面加数据存放路径及文件名,如我的数据如下(注意格式是json)

3 )使用例子

h2load http://10.42.1.251:80/nssf-mgmt/network-slice-instance -d /root/lin/h2load/add_nsi_1.json -H "Content-Type: application/json" -H ":method:POST"

h2load 发 PUT 以及 DELETE 请求与上面类似,把 -H ":method:POST" 改一下即可:

h2load http://10.42.1.251:80/nnssf-nssaiavailability/v1/nssai-availability/comsumersnfid -d /root/lin/h2load/ava_put.json -H "Content-Type: application/json" -H ":method:PUT"

4)参数

-n 发送的总请求数,如只加 -n3其实是 -n3 -c1 -r1 表示 一秒内启动一个client,这个client发送了3条requests

-c 启动的client 总数,如 -n3 -c3 -r1,则表示一秒内启动3个client,然后每个client发送1条requests

-r 启动的速率,如-n300 -c30 -r10  表示一秒启动10个client,然后每个client发送10条requests信息【-n数量除以-c client数】,然后持续发送 3秒(默认 --rate-period == 1s)

- p 协议,可选有http2 和 http1.1 默认 http2 。想改成http1.1 加上 “-p http/1.1”即可

-D持续时间,即 -D 10表示我就持续发送10s的请求,注意,这里是发送一个请求,等待收到响应后再发送下一个,直到-D时间结束。这里并不是并发。

-d 携带的数据

一般来说,测试瞬时并发 我一般用如 -n3000 -c100 -r100,表示在一秒内启动同时启动100个client,然后每个client发送30条requests数据,总共并发3000条请求过去。

持续并发,使用如 -n9000 -c300 -r100,表示每秒启动同时启动100个client,然后每个client发送30条requests数据,持续3秒。也是每秒共并发3000条过去,持续3秒,共计9000条请求。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Qton_CSDN/article/details/103026819
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 21:59:11
  • 阅读 ( 1721 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢