WRK的HTTP服务压力测试

前言

apache benchmark(ab)同属于性能测试工具,但是比 ab 功能更加强大

一、linux下安装WRK

1、安装环境和工具

# 安装 make 工具
sudo apt-get install make# 安装 gcc编译环境
sudo apt-get install build-essential

2、安装git

sudo apt-get install git

3、拷贝Wrk源码到本地

#下载命令
git clone https://github.com/wg/wrk.git #切换路径到wrk目录下
cd wrk  make
#使用make命令编译环境

注意:如果编译过程中出现:

src/wrk.h:11:25: fatal error: openssl/ssl.h: No such file or directory  #include <openssl/ssl.h>

下载openssl库

sudo apt-get install libssl-dev
或者
sudo yum install  openssl-devel

make之后,会在项目路径下生成可执行文件wrk,随后就可以用其进行HTTP压测了。可以把这个可执行文件拷贝到某个已在path中的路径,比如/usr/local/bin,这样就可以在任何路径直接使用wrk了。

二、进行测试

1、常用命令参数

-c --conections:保持的连接数
-d --duration:压测持续时间(s)
-t --threads:使用的线程总数
-s --script:加载lua脚本
-H --header:在请求头部添加一些参数
--latency 打印详细的延迟统计信息
--timeout 请求的最大超时时间(s)

示例

wrk -t8 -c100 -d30s --latency http://127.0.0.1:8080/api/v1/posts?size=10

三、go-wrk

1、下载

go get github.com/adeven/go-wrk

2、使用方法

go-wrk [flags] url

3、常用参数

-H="User-Agent: go-wrk 0.1 bechmark\nContent-Type: text/html;": 由'\n'分隔的请求头
-c=100: 使用的最大连接数
-k=true: 是否禁用keep-alives
-i=false: if TLS security checks are disabled
-m="GET": HTTP请求方法
-n=1000: 请求总数
-t=1: 使用的线程数
-b="" HTTP请求体
-s="" 如果指定,它将计算响应中包含搜索到的字符串s的频率

4、示例

go-wrk -t=8 -c=100 -n=10000 "http://127.0.0.1:8080/api/v1/posts?size=10"

四、压测结果分析

Running 30s test @ http://www.bing.com (压测时间30s)8 threads and 200 connections (共8个测试线程,200个连接)Thread Stats   Avg      Stdev     Max   +/- Stdev(平均值) (标准差)(最大值)(正负一个标准差所占比例)Latency    46.67ms  215.38ms   1.67s    95.59%(延迟)Req/Sec     7.91k     1.15k   10.26k    70.77%(处理中的请求数)Latency Distribution (延迟分布)50%    2.93ms75%    3.78ms90%    4.73ms99%    1.35s (99分位的延迟)1790465 requests in 30.01s, 684.08MB read (30.01秒内共处理完成了1790465个请求,读取了684.08MB数据)
Requests/sec:  59658.29 (平均每秒处理完成59658.29个请求)
Transfer/sec:     22.79MB (平均每秒读取数据22.79MB)

相关借鉴:https://www.cnblogs.com/jiftle/p/7158291.html

如果看完对自己有所帮助,请点赞支持,谢谢大家

WRK的HTTP服务压力测试相关推荐

  1. web服务压力测试)有效的压力测试系统将应用以下这些关键条件

    1)重复(Repetition):最明显的且最容易理解的压力条件就是测试的重复.换句话说,测试的重复就是一遍又一遍地执行某个操作或功能,比如重复调用一个Web 服务.功能验证测试可以用来被弄清楚一个操 ...

  2. 不区分语言开发工具1(服务压力测试,跨域问题解决,Redis进行密码的设置,设计模式,搭建FTP局域网服务,redis热key,redis哨兵,VueRouter模式)

    1. Apache的ab工具:(压测的具体使用,可以实现添加参数进行相关的测试) 压测的概念: 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s ...

  3. 【托管服务qin】WEB网站压力测试教程详解

    Web 服务处于分布式计算的核心位置,它们之间的交互通常很难测试.分布式开发.大型的开发者团队以及对代码日益组件化的期望都有可能使 Web 服务的开发变得越来越容易隐藏错误.这些类型的错误极难检测出来 ...

  4. WEB网站压力测试教程详解

    WEB 网站压力测试教程详解 Web 服务处于分布式计算的核心位置,它们之间的交互通常很难测试.分布式开发.大型的开发者团队以及对代码日益组件化的期望都有可能使 Web 服务的开发变得越来越容易隐藏错 ...

  5. web性能压力测试工具材料

    很好的博客 http://www.nj-test.com/post/75-1.html :http://www.51testing.com/?uid-116228-action-spacelist-t ...

  6. WEB网站压力测试方案 压力测试如何换算并发用户数

    http://wenku.baidu.com/view/bedf1a93daef5ef7ba0d3c29.html 压力测试通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别 ...

  7. 几种网站压力测试工具调研与使用

    在项目上线之前,都需要做压力测试,目的是看下我们的网站能抗住多少的压力,能承担多少并发,如果不做压力测试,一旦出现大访问量时,我们的网站会挂掉.因此,我们对现有较流行的几种网络压力测试工具进行了简单调 ...

  8. 模拟黑客思维对网站进行CC压力测试!(二)

    玩计算机的老炮儿都知道买回来一台新机器,都需要烤机,也就对主机性能进行测试,一般三天,不死机,没有故障就是可以了.现在每天都上线N个网站,有几个对自己的网站进行过性能测试,压力测试,安全检测呢?网站线 ...

  9. 使用wrk工具对apisix插件file-logger进行压力测试

    方案 apisix的路由开启插件file-logger前后,分别使用wrk工具进行压力测试. 准备工作 下载解压和安装 wget https://github.com/wg/wrk/archive/r ...

最新文章

  1. html 页面内锚点定位及跳转方法总结
  2. 1142 CREATE VIEW command denied to user 'blog'@'XXX.XXX.XXX.XXX' for table 'Articles'
  3. linux下的二进制文件的编辑和查看
  4. Ubuntu Terminal Shortcut
  5. ElasticSearch查询 第四篇:匹配查询(Match)
  6. DevOps时代,企业数字化转型需要强大的工具链
  7. python买东西_Python实战之ATM+购物车
  8. mydate97设置时间
  9. 【前端笔试算法题】之小偷分赃题
  10. tomcat服务器配置优化
  11. Oracle停止数据泵,如何停止重启数据泵任务
  12. 客流量统计分析系统应用解决方案
  13. Linux基础知识汇总、有这一篇就够了(2021最新整理)
  14. 通过cRIO 9047 USB端口自定义开发周立功CAN盒
  15. 项目实训(一)基于unity的2D多人乱斗闯关游戏设计与开发 unity的下载及了解
  16. 最最最详细的C语言教程笔记零起步(10)进阶必备 同笔者一起学习
  17. VS报错: fatal error LNK1120: 1 个无法解析的外部命令
  18. 新职业人才缺口近千万,90后最担心失业;字节跳动回应TikTok被收购传闻;Twitter公布账号劫持事故细节 | EA周报...
  19. offsetParent、offsetTop、offsetLeft、offsetHeight、offsetWidth
  20. 婚宴座位图html5,婚礼酒席座位该怎么安排好?婚宴座位安排图解

热门文章

  1. 使用OnBeforeUnload JavaScript事件
  2. java 计算三角形面积
  3. 万字长文,学会ElasticSearch,这一篇就够了!
  4. 童话里都是骗人的,扒一扒那些悲惨的原配,富家女扶贫是什么下场
  5. 【diannaoxitong】无线热点chinanet免费无线上网教程
  6. 物联网平台开发 污染物在线监控(监测)系统数据传输标准(HJ 212-2017代替HJ/T 212-2005)
  7. 菜鸟总结之——数据完整性
  8. java导出表格PDF
  9. matlab maximum,maximum size of a string in matlab
  10. C++---数字三角形模型---最低通行费(每日一道算法2023.1.14)