Skip to main content

Python 类 Apache 基准测试工具

项目描述

作者

奥利弗 Tonnhofer < olt @ bogosoft com >

介绍

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)
  • 首次发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

palb-0.1.1.tar.gz (14.3 kB 查看哈希

已上传 source