CBenchmark,开源的纯C实现的通用性能测试框架
这是我实现的一款性能测试工具,之前在工作中常用LoadRunner之类的工具来完成性能测试,但受限于LR极其昂贵的Lisence以及难以定制的SDK,于是我用C/C++实现了这个工具,并借助Linux系统对线程和进程的良好调度,可以实现极高的并发压力.
官方主页或者github项目主页:http://cuiz.me/cbenchmark/2011/07/cbenchmarkjieshao/
下载地址: https://github.com/charlescui/CBenchmark 本产品是为了解决性能测试压力生成的问题. 在对服务端系统进行性能测试时,目前成熟的解决方案是使用windows系统下LoadRunner等系列产品,而无法找到功能强大的Linux系统下的产品。 本产品理论支持所有的服务端性能测试。 请执行 bin/cbenchmark -? ./features目录下面是测试插件,目前还没有完善,现在只实现了ice的测试demo.因为我一直用cbenchmark测试私有协议以及一部分ice协议,私有协议的测试demo不方便公开,而ice协议的测试demo完全可以给大家借鉴. 如果大家不了解ice,可以在这里学习一下:http://www.zeroc.com/ 关于main.c 不管怎样的协议的性能测试,思路如出一辙,你只需按照上面的三条完成业务代码的编写,CBenchmark就会帮助你把这个业务逻辑变成高并发高频率的请求,这样会瞬间给服务端带来极大的压力,从而测试服务器的抗压性.TODO 这个用例是我在测试工作中积累的数十个测试场景里挑选出来的,已经非常的简单了,但要了解cbenchmark的工作原理,还是需要再阅读更多的关于cbenchmark的文档,我会陆续放出. gtalk/gmail:zheng.cuizh@gmail.com
介绍:
CBenchmark—-CharlesCui’s Benchmark
系统|Platform
本程序目前支持Linux系统,并且理论可以实现跨平台编译(作者并没有实验过,但本产品并没有依赖特定系统的库或者函数).特点|Feature
对于非标准协议的性能测试,我推荐您使用本产品。安装过程
./configure --prefix=/opt/cbenchmark
make
make install
安装后产生文件
TODO
报表
作者在未来会提供报表生成工具,
但不会集成在本产品中,这是为了保证本产品的干净,高效。
并且在没有桌面的linux端使用本产品执行性能测试,
测试结果的显示手段有限,所以我不建议集成在本工具里。
而是最好用其他工具实现,这样也可以完成分布式性能测试的图表结果展现。使用方法|Usage
[zheng.cuizh@localhost cbenchmark]$ /usr/local/cbenchmark/bin/cbenchmark -?
CharlesCui's Benchmark
help you do performance test nice.
-o ["Shell command"]
-f [Output result path]
-F [Dynamic lib path.]
-n [Each thread iterations times]
-c [Concurrence NUM]
-l [Syslog level]
-g [Syslog name,less than 128 char]
-v [Show -o stdoutput]
-t [Selftest]
-x [Scenario id]
-T [Timmer(seconds)].
-s [Select a scenario from list]
用例|Example
ICE测试
demo位于./features/ice下,几乎所有的ice协议测试都可以用这个框架改一改就行.
pmw->script.init = mos_init; pmw->script.act = mos_getUserCount; pmw->script.end = mos_end;
这是测试mos_getUserCount函数的场景.
作者|Author