前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用wrk进行压力测试

使用wrk进行压力测试

作者头像
Ryan-Miao
发布2019-01-02 13:02:26
2K0
发布2019-01-02 13:02:26
举报
文章被收录于专栏:Ryan MiaoRyan Miao

最近需要对新的服务进行压力测试。比较了ab和jemeter以及wrk。最终选择wrk来作为压力测试工具,可以把cpu压到100%。

官方源码: https://github.com/wg/wrk

安装

代码语言:javascript
复制
git clone https://github.com/wg/wrk

make

-- 拷贝wrk到bin
cp wrk /usr/sbin/wrk

使用

具体介绍参考: https://segmentfault.com/a/1190000014591330

这里主要用到一个简单的用法:指定线程数,连接数,压测时间,随机参数

单独固定测试一个接口

代码语言:javascript
复制
wrk -t100 -c1000 -d30s  --latency "http://192.168.58.57:9111/api/v1/location/point?thePointNum=3&lonLat=117.269552,26.299981"
代码语言:javascript
复制
使用方法: wrk <选项> <被测HTTP服务的URL>                            
  Options:                                            
    -c, --connections <N>  跟服务器建立并保持的TCP连接数量  
    -d, --duration    <T>  压测时间           
    -t, --threads     <N>  使用多少个线程进行压测   
                                                      
    -s, --script      <S>  指定Lua脚本路径       
    -H, --header      <H>  为每一个HTTP请求添加HTTP头      
        --latency          在压测结束后,打印延迟统计信息   
        --timeout     <T>  超时时间     
    -v, --version          打印正在使用的wrk的详细版本信息
                                                      
  <N>代表数字参数,支持国际单位 (1k, 1M, 1G)
  <T>代表时间参数,支持时间单位 (2s, 2m, 2h)

随机参数

指定请求req脚本即可。lua语法简单了解一下即可。

代码语言:javascript
复制
wrk -t100 -c1000 -d30s -s req.lua --latency "http://192.168.58.57:9111"

req.lua

代码语言:javascript
复制
request = function()
   local lg1 = math.random(103, 119)
   local lg2 = math.random(0, 999999)
   local lat1 = math.random(23, 40)
   local lat2 = math.random(0, 999999)
   local path = "/api/v1/location/point?thePointNum=3&lonLat=" .. lg1 .. "." .. lg2 .. "," .. lat1 .. "." .. lat2

   return wrk.format(nil, path)
end

--[[ 以下可以在简单测试的时候打印结果,验证,但若是性能测试,需要注释掉 ]]
response = function(status, headers, body)
  print(body)
end
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 使用
    • 单独固定测试一个接口
      • 随机参数
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档