首页 > 其他分享 >wrk压测工具

wrk压测工具

时间:2023-04-21 16:02:12浏览次数:42  
标签:paths end 压测 lines wrk -- file 工具

 

1、参数说明

使用方法: 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)

  

2、发送一个get请求

wrk -t12 -c400 -d30s --latency http://www.baidu.com

  

3、发送一个post请求

编写lua脚本post.lua

wrk.method = "POST"
wrk.body = '{"username":"admin","password":"123456"}'
wrk.headers["Content-Type"] = "application/json"

response = function(status, headers, body)
print(body) --调试用,正式测试时需要关闭,因为解析response非常消耗资源
end

执行命令

wrk -t12 -s ./post.lua -c400 -d30s --latency http://127.0.0.1:8080/login

 

4、同时发送多个get请求

//counter = 0
counter = 1

-- Initialize the pseudo random number generator - http://lua-users.org/wiki/MathLibraryTutorial
math.randomseed(os.time())
math.random(); math.random(); math.random()

function file_exists(file)
  local f = io.open(file, "rb")
  if f then f:close() end
  return f ~= nil
end

function shuffle(paths)
  local j, k
  local n = #paths
  for i = 1, n do
    j, k = math.random(n), math.random(n)
    paths[j], paths[k] = paths[k], paths[j]
  end
  return paths
end

function non_empty_lines_from(file)
  if not file_exists(file) then return {} end
  lines = {}
  for line in io.lines(file) do
    if not (line == '') then
      lines[#lines + 1] = line
    end
  end
  return shuffle(lines)
end

paths = non_empty_lines_from("paths.txt")

if #paths <= 0 then
  print("multiplepaths: No paths found. You have to create a file paths.txt with one path per line")
  os.exit()
end

print("multiplepaths: Found " .. #paths .. " paths")

request = function()
    path = paths[counter]
    counter = counter + 1
    if counter > #paths then
     // counter = 0
     counter = 1
    end
    return wrk.format(nil, path)
end

在wrk当前目录下创建一个paths.txt,将要压测的url保存在这个文件中,一行一个。注意paths.txt如果是dos格式,会报错,得改成unix格式。

执行命令

wrk -c 100 -t 4 -d 30s -s wrk-scripts/multiplepaths.lua http://localhost

 

参考:

  性能测试工具 wrk 使用教程 - 犬小哈 - 博客园 (cnblogs.com)

      wrk入门(2):发送post请求 - 章土 - 博客园 (cnblogs.com)

标签:paths,end,压测,lines,wrk,--,file,工具
From: https://www.cnblogs.com/mango1997/p/17340714.html

相关文章

  • 工具集
    Linux连接与文件传输工具MobaXtermportableedition免安装;installeredition安装版FileZilla文件较大时,下载较慢,因此推荐使用FileZilla下载大文件Tabby-跨越堡垒机的SSH利器-基础篇 内存消耗大,支持SSH的JumpHost跳板连接。......
  • 图像智能降噪工具:Topaz Photo AI for Mac v1.3.1
    TopazPhotoAI是一款适用于Mac的图像处理软件,它使用人工智能技术对照片进行编辑和优化。该软件提供了多种强大的功能,帮助用户轻松地改善图像质量,并实现自定义的效果。TopazPhotoAI支持多种文件格式,包括JPEG、TIFF、PNG、RAW等,并且能够自动检测并修复许多常见的问题,例如模糊、噪......
  • 原型设计工具比较和实践
    目录一、原型设计工具比较1.墨刀2.Axure3.Mockplus二、原型设计1.主题名称2.功能介绍3.界面设计考虑因素4.切换界面(1)视频界面(2)视频播放界面(3)个人信息界面(4)编辑个人信息界面5.界面切换流程一、原型设计工具比较1.墨刀优点新手小白型工具,操作难度较低模板较多,可......
  • 内网穿透工具
    内网穿透工具什么是内网穿透?简单点,一句话概括:它将内网下的本地服务器通过安全隧道暴露至公网。使得公网用户可以正常访问内网服务。比如你本地开发项目启动了,想让别人从互联网上面访问到,这个内网穿透就派上用场了,当然这只是我使用的范围,其他的我也用不上、下面介绍的内......
  • 浅谈日出日落的计算方法以及替代工具 - 日出日落 API
    引言如果你想知道精确的日落日出时间,又或者你想设计一个日出日落时间查询的应用,又或者你只是好奇点进来了,还是可以过来围观一下涨涨知识,今天想跟大家聊一聊的是日出日落的计算方法以及替代工具-日出日落API。日出日落API是一种可以获取指定城市或地点每日日出时间和日落时......
  • 全平台数据(数据库)管理工具 DataCap 管理 Rainbond 上的所有数据库
    DataCap是用于数据转换、集成和可视化的集成软件,支持多种数据源、文件类型、大数据相关数据库、关系数据库、NoSQL数据库等。通过该DataCap可以实现对多个数据源的管理,对数据源下的数据进行各种操作转换,制作数据图表,监控数据源等功能。在Rainbond上部署DataCap前提安装Ra......
  • #正版软件推荐 |Todo 清单高级账户待办事项与时间管理工具
    这款待办事项与时间管理应用让你成为时间的主宰。它融合IvyLee时间管理法和Pomodoro番茄工作法,搭配强大的数据复盘系统,为你的学习、工作和生活带来翻天覆地的变化。该应用已上线Android、Windows、Mac和华为鸿蒙平台,并将逐步支持iPhone、iPad、AppleWatch等更多设备。众所周知,时......
  • 企业聊天工具要怎么挑选?
    随着互联网的迅速发展,聊天工具普及到了人们的日常生活与工作当中,许多企业内部都会使用社交聊天工具作为内部沟通协作工具,这些社交聊天工具虽然一定程度上能解决企业内部沟通协作需求,但在效率的提升上却有不足,而且有信息泄露安全隐患。因此,建议企业内部最好还是使用企业级的聊天工......
  • 在线CTF工具箱--端口扫描--杂项--密码学--编码和解码
    这是为CTF发烧者准备的的工具套件,助你过关斩将、攻克难关。目前基础功能和一部分高级功能已经完成,可以在GitHub上查看工具列表和开发进度。 CTFer:https://ctfever.uniiem.com/ 项目地址:https://github.com/UniiemStudio/CTFever ......
  • 如何使用Webpack工具构建项目
    起步webpack用于编译JavaScript模块。一旦完成 安装,你就可以通过webpack CLI 或 API 与其配合交互。如果你还不熟悉webpack,请阅读 核心概念 和 对比,了解为什么要使用webpack,而不是社区中的其他工具。运行webpack5的Node.js最低版本是10.13.0(LTS)。基本......