web服务压力测试工具 BullBench

码农软件 · 软件分类 · 性能测试和优化 · 2019-11-26 23:28:55

软件介绍

什么是 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):

如何编译? (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?)

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

本文地址:https://www.codercto.com/soft/d/19874.html

数字乌托邦

数字乌托邦

尼古拉斯•卡尔 / 姜忠伟 / 中信前沿出版社 / 2018-5 / 69.00

当下,技术与我们的关系变得越来越紧密不可分割,特别是智能手机等设备的出现,带给整个人类社会一场彻底的变革。的确,智能手机上的各种应用程序让我们的工作生活无比便利:社交媒体让我们能够和他人实时保持联络并传输信息,不再受时间、地点的限制;搜索引擎通过精准的算法将我们所需要的信息整合推送至屏幕上,让我们毫不费力就看到自己想要的;地图软件为我们的出行提供了更多路线选择,甚至可以使用语音导航,帮助我们顺利到......一起来看看 《数字乌托邦》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具