myAb
类APACHE BENCHMARK 压力测试的Python 实现
myAb压力测试
概述
myAb为投递搜狐Python实习的一个在线题目,题目内容为:
编写一个 ab(Apache Benchmark)的替代程序,并尽可能兼容 ab 的参数。
ab程序的主要功能和参数可参考 http://mo2g.com/view/38/,下面简单的说明一下 myAb 程序的运行结果以及兼容的主要参数。
例如在本机命令行输入 ./myAb.py -h -V -c 10 -n 20 -e www.baidu.com
可获得pdf文件中图片的输出
myAb 兼容的一些功能
-n 设置请求的总次数
-c 设置请求的并发数
-H 设置浏览器代理
-A 采用base64 编码向服务器提供身份验证
-C cookie 信息
-e 保存为csv格式,文件名 由 myAb 自己产生,会在执行结果中显示
-g 保存为TSV
-h 显示ab可选参数列表
-i 发送HEAD请求,默认发送GET请求
-p 通过POST发送的数据(urlencode后的数据)
-s 使用https发送请求
-V 显示myAb 的版本号
-w 采用HTML表格打印结果
-X 设置代理服务器
myAb 的实现思路
1、用于发送http请求的库有很多,包括urllib urllib2 httplib httplib2 requests pycurl,pycurl也是在用了urllib2 httplib2 很久之后发现才选择了,原因如下:pycurl接口更丰