今天需要对一个网页做压力测试,首先我想到了 apache 的 ab ,操作简单,使用方便,装了 apache 就有,不用在安装其他软件。
可是刚开始就碰到了问题,要压力的那个网页需要 post 数据才可以,以前用 ab 不过是静态页,顶多就是个 get 方式加点参数,没玩过 post ,看帮助,发现 ab 支持
-p postfile File containing data to POST. Remember also to set -T
-u putfile File containing data to PUT. Remember also to set -T
-T content-type Content-type header for POSTing, eg.
'application/x-www-form-urlencoded'
Default is 'text/plain'
直接试用若干次,发现不行,google 后发现要加 Content-type ,之后继续测试,发现其中一个可以,另一个却仍旧不行,检查原因,发现一个用的是 post urlencoded ,另一个是 form-data ~~ ,无奈继续 google (发现中国文章一大抄啊 ~~),怎么都一样呢,你们难道post 都是 form-urlencoded ,就没有一个 form-data 的 ? 看来还是要靠自己解决,通过 查看上传的原始数据对比发现 ab 是可以做 post 的压力测试的,而且 urlencoded 和 form-data 都可以。具体方法如下:
post -- urlencodeder (网上基本都是这个)
ab -v4 -n1 -p post.txt -T 'application/x-www-form-urlencoded'
post.txt 内容
aaa=123
bbb=456
post -- form/multipart form-data
ab -v4 -n1 -p post.txt -T 'multipart/form-data; boundary=---1234abcd'
post.txt 内容
-----1234abcd
Content-Disposition: form-data; name="a"
123
-----1234abcd
Content-Disposition: form-data; name="b"
456
-----1234abcd--
文件上传也同样。
阅读(2585) | 评论(0) | 转发(0) |