Python 类 Apache 基准测试工具
项目描述
介绍
palb是一个 HTTP 基准测试工具。命令行界面类似于 Apache 基准测试工具ab。它缺少ab的高级功能,但它支持多个 URL(来自参数、文件、标准输入和 Python 代码)。
palb使用pycurl进行高性能 URL 检索,每秒能够处理数千个请求和数十个并发请求。如果pycurl不可用,palb将退回到 Python 的urllib2。
如果您期望每秒有超过几百个请求的测试结果,请确保您已安装pycurl 。检查 palb 的输出:
[...] Using pycurl as URL getter. [...]
安装
可以使用 easy_install 或从 tarball 安装此软件包。
如果您从 tarball 安装,请以管理用户身份运行以下命令:
python setup.py install
您需要 setuptools 来安装 palb。如果没有,可以使用 ez_setup.py 脚本安装。
如果您使用 easy_install 进行安装,您甚至不需要下载任何内容,因为将从 Python 包索引为您下载最新版本:
easy_install --upgrade palb
为了获得最佳性能,请安装pycurl(请参阅简介):
easy_install pycurl
示例和用法
简单用法(1 个请求):
% palb http://example.com/
多个请求(2 个并发,总共 10 个请求):
% palb -c 2 -n 10 http://example.com/
在多个 URL 之间交替:
% palb -c 2 -n 100 http://example.com/index.html\ http://example.com/foo.html http://example.com/bar.html
从文件中获取 URL(使用-作为从标准输入读取的文件名):
% cat test.txt http://example.com/one.html http://example.com/two.html % palb -n 20 -f test.txt
从 python 代码中获取 URL:
% cat test.py
def urls(args):
while True:
yield 'http://example.com/'
% palb -n 100 -u test:urls
args是一个包含所有剩余参数的列表。使用它将选项传递给您自己的 URL 生成器。
这是一个示例输出:
% palb -c 4 -n 100 -u rndtest:random_urls 'http://localhost:5050/bar/'
This is palb, Version 0.1.1
Copyright (c) 2009 Oliver Tonnhofer <olt@bogosoft.com>
Licensed under MIT License
Using pycurl as URL getter.
Benchmarking (be patient)..... done
Average Document Length: 23067 bytes
Concurrency Level: 4
Time taken for tests: 6.469 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 2306704 bytes
Requests per second: 15.46 [#/sec] (mean)
Time per request: 250.810 [ms] (mean)
Time per request: 62.702 [ms] (mean, across all concurrent requests)
Transfer rate: 348.22 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 43 46 3.5 45 73
Processing: 56 205 97.2 188 702
Waiting: 90 100 12.6 94 138
Total: 106 251 97.1 234 750
Percentage of the requests served within a certain time (ms)
50% 239
66% 257
75% 285
80% 289
90% 313
95% 382
98% 613
99% 717
100% 768 (longest request)
变更日志
- 0.1.1 (2008-04-30)
更新的文档(palb 现在仅作为 .tar.gz 提供)
- 0.1.0 (2008-04-30)
使用 pycurl 减少打开文件句柄的数量,允许更多并发请求
不要导入 ez_setup,假设它已安装
支持 python 2.4(测试除外)
- 0.0.2 (2008-04-19)
添加了基于 PyCurl 的 URLGetter
改进的性能(使用 PyCurl)
连接时间统计(使用 PyCurl)
新的封装结构
修复:将*.txt添加到清单(0.0.1 .tar 中缺少 LICENSE.txt)
添加测试(鼻子)
- 0.0.1 (2009-04-13)
首次发布