BullBench

web服务压力测试工具
授权协议 GPL
开发语言 C/C++
所属分类 开发工具、 性能测试和优化
软件类型 开源软件
地区 国产
投 递 者 凌运恒
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

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

  • 什么是 BullBench ? (what) 一个可以对web服务进行压力测试的工具 最大特点,BullBench 可以读取 nginx access log 中请求,并将其发送给web服务。 也可以读取自定义文件,使用正则匹配和替换,定制请求,发送给web服务。 可以同时模拟15000并发度请求(具体数值受限于系统配置) 和bullbench类似的软件有 webbench、tcpcopy、jme

 相关资料
  • APM 厂商「云智慧」是 DaoCloud 的合作伙伴,云智慧提供了用于应用压力测试的产品「压测宝」,可供 DaoCloud 上部署的应用进行分布式压力测试。以下内容由云智慧公司提供。 压测宝介绍 云智慧压测宝: 自动化全链路云测试,模拟真实压力 压测宝可以利用全球的云资源,快速灵活地部署测试,使任何客户都可以根据需求进行互联网和移动应用的性能测试,帮助客户找出系统瓶颈和潜在问题,改善和提升网站品

  • 概述 Web压力测试 工具 LoadRunner LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期。 LoadRunner提供了3大

  • 测试环境: 系统:debian 6.0 64位 内存:64G cpu:Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz (2颗物理cpu,6核心,2线程) Workerman:开启200个Benchark进程 压测脚本:benchmark 业务:发送并返回hello字符串 普通PHP(版本5.3.10)压测 短连接(每次请求完成后关闭连接,下次请求建立新的连接):

  • 测试环境: 系统:debian 6.0 64位 内存:64G cpu:Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz (2颗物理cpu,6核心,2线程) Workerman:开启200个Benchark进程 压测脚本:benchmark 业务:发送并返回hello字符串 普通PHP(版本5.3.10)压测 短链接(每次请求完成后关闭链接,下次请求建立新的链接):

  • 本文向大家介绍MySQL 之压力测试工具的使用方法,包括了MySQL 之压力测试工具的使用方法的使用技巧和注意事项,需要的朋友参考一下 一、MySQL自带的压力测试工具——Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlsl

  • 压力测试很有趣,一开始好像压测的目的是找出系统在负载下能不能工作。现实中,系统在负载下确实能工作,但在负载足够重的某些情况下不能工作。我把这叫做碰壁或撞响[1]。可能会有例外,但大多数情况下会有这么一堵“墙”。压测的目的是为了指出墙在哪里,然后弄清楚怎么把墙移得更远些。 压测计划需要在工程的早期就规划好,因为它经常有助于弄清楚到底什么是被期望的。两秒的网页请求是一个悲伤的失败还是一个了不起的成功?

  • 本文向大家介绍Web性能压力测试工具Siege使用教程,包括了Web性能压力测试工具Siege使用教程的使用技巧和注意事项,需要的朋友参考一下 Siege是一个多线程http负载测试和基准测试工具。通过使用Siege 提供的功能,可以很容易的制定测试计划:包括规定使用并发用户数、重复数量,从而可以模拟在服务器、网络或者其它对象上附加负载以测试他们提供服务的受压能力,方便的测试服务器的性能。 官方下

  • 本文向大家介绍压力测试和负载测试的区别相关面试题,主要包含被问及压力测试和负载测试的区别时的应答技巧和注意事项,需要的朋友参考一下 负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问