什么是 BullBench ? (what)

  • 一个可以对web服务进行压力测试的工具
  • 最大特点,BullBench 可以读取 nginx access log 中请求,并将其发送给web服务。
  • 也可以读取自定义文件,使用正则匹配和替换,定制请求,发送给web服务。
  • 可以同时模拟15000并发度请求(具体数值受限于系统配置)
  • 和bullbench类似的软件有 webbench、tcpcopy、jmeter等,与它们相比,bullbench有自己独特的地方,比webbench功能多,比tcpcopy操作简单,比jmeter编写测试用例的学习成本更低。

代码托管地址 : (where)

https://github.com/zuocheng-liu/BullBench

为何编写这个软件? (why)

主要原因是,我曾经在查找一个系统内存泄漏问题时,遇到了一些阻碍:

  • 线下压力测试时,要尽可能模拟线上请求
  • 理想方案是使用tcpcopy,复制线上流量,但是目前没有现成的tcpcopy环境

为了克服这些阻碍,就写一个简单的工具,先是读取nginx access log, 提取请求uri,然后模拟1000个客户端发送给Web后台。

这个工具经过再完善和变得更通用之后,bullbench诞生了。

什么时候用呢? 以及软件的局限有哪些。(when)

使用场景:

  • 压力测试时
  • 追踪bug,复现线上问题

局限:

  • 如果没有请求日志,无法使用bullbench进行压力测试
  • 只能模拟发送HTTP GET请求
  • 不能够处理 HTTP 3XX 重定向服务
  • 其他

作者联系方式 (who):

  • 刘作程career@zuocheng.net

如何编译? (how )

进入源代码目录,执行make

如何使用?

执行 ./bin/bullbench -h 有详细说明和使用实例

    BoolBench 1.0-f <filename> 包含请求的文件,可以是nginx access log,也可以是自定义的数据文件-t <num>      请求文件的类型, 1 是 nginx access log, 0 其他 其他, 默认是 1-u <url>      请求的url前缀, 不支持 https, 比如 http://www.bullsoft.org-H <host>     HTTP请求头字段Host, 默认是 NULL-c <num>      并发请求的线程数, 默认是 1000-r <regex>    正则表达式,用于提取请求文件中特定的内容. 必须和参数'-t 0' 搭配。-o <string>   正则变量拼接后的字符串, 支持 $0-$9-h            显示帮助信息
实例1:  ./bullbench -f /var/log/nginx/access.log -u http://127.0.0.1:8080
实例2:  ./bullbench -f /var/log/nginx/access.log -u http://127.0.0.1:8080 -H www.bullsoft.org
实例3:  ./bullbench -f /var/log/nginx/access.log -u http://127.0.0.1:8080 -t 0 -r "[a-z]*([0-9]+)([a-z]*)" -o "/display?a=\$1&b=\$2"

一些参数(how much? how many?)

并发线程数设置多少,依据系统情况而定。

转载请注明来源,原地址保持永久更新。 
博客首页:
作程的技术博客 
文章标题:《Web服务压力测试工具BullBench》 
本文链接:https://it.zuocheng.net/web-bullbench-zh

Web服务压力测试工具BullBench相关推荐

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

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

  2. 十个免费的Web负载/压力测试工具

    Grinder  – Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利.支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管理.根据 ...

  3. 三种web性能压力测试工具

    三种web性能压力测试工具http_load webbench ab小结 题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://w ...

  4. Web性能压力测试工具之WebBench详解

    在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力测试的结果 ...

  5. Web性能压力测试工具-Webbench

    目录 Webench Webbench实现的核心原理 安装和使用 注意总结 安全隐患 Webench Webench是一款LInux轻量级的网站测压工具,最多可以对网站模拟3w左右的并发请求,可以控制 ...

  6. Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

    一.http_load程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会 ...

  7. Web性能压力测试工具——Siege详解

    Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行. ...

  8. Linux下Web网站压力测试工具Webbench

    webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 一,环境:linux 二,安装方式:编译安装 具体 ...

  9. Web网站压力测试工具

    使用Microsoft Web Application Stress Tool对web进行压力测试 不错关于压力测试博客: http://blog.sina.com.cn/s/blog_5155e8d ...

  10. linux下的web服务器压力测试工具之ab

    介绍 ab是apache附带的一款压力测试工具,它非常容易使用,ab可以直接在Web服务器本地发起测试请求.这至关重要,因为我们希望测试的服务器的处理时间,而不包含数据的网络传输时间以及用户PC本地的 ...

最新文章

  1. 【2018-01-22】HTML-表单及表单元素
  2. jQuery选择器实现隔行变色和使用javaScript实现隔行变色
  3. 函数 —— strtok() 例如:Fred male 25,John male 62,Anna female 16两层循环
  4. vins 解读_代码解读 | VINS 视觉前端
  5. python flask 如何修改默认端口号
  6. 认识控制台-控制台句柄、附着到控制台、关闭控制台
  7. 请求的站点不可用或找不到_公厕再不是“找不到、用不了、坐不下”
  8. 回忆---中秋夜赴京城考OCP有感
  9. 014、BOM与DOM对象的应用
  10. 统计单词出现的次数并进行排
  11. 切换分支 如何判断 是否完成_如何判断展览公司是否专业?
  12. 面试官最爱的 volatile 关键字,这些问题你都搞懂了没?
  13. 大数据可视化常见的三种错误
  14. python 数据集中随机选择作为测试集、验证集
  15. 成长路上破局思维:工具化时间管理
  16. 笔记本固态硬盘温度测试软件,台式电脑ssd固态硬盘温度多少算正常?查看ssd固态硬盘温度的方法...
  17. 计算机伦理的发展,人工智能技术发展的伦理困境研究
  18. 【融云出海白皮书免费看】出海洞察之沙特的「土豪行为」盘点
  19. 哈工大计算机网络期末复习资料知识点总结
  20. 云队友丨五大思维模式,决定你的人生能走多远

热门文章

  1. 素材资源解析系统源码 代下程序 第三方平台下载站程序千图网千库网等素材网站下载网站
  2. 普林斯顿微积分读本篇十五:积分方法
  3. UniWebView使用总结
  4. bubblesort java,算法bubbleSort()
  5. 常用网线的规格及型号总结
  6. 实验二:线性时间选择
  7. Excel数据透视表
  8. 联想E430c:To interrupt normal starup,press enter问题解决方法
  9. python label字体_Matplotlib xlabel,Arial格式,带一个斜体字
  10. java helloworld源代码_Java Hello World源代码剖析