使用apachebench进行post压力测试
apachebench网上的资料很多 但是甚至包括国外的文章以及官方文档 出了help显示的内容之外就没有任何一丁...
扫描右侧二维码阅读全文
03
2008/12

使用apachebench进行post压力测试

apachebench网上的资料很多
但是甚至包括国外的文章以及官方文档
出了help显示的内容之外就没有任何一丁点更详细些的内容了
要使用ab进行post数据测试.从help可以看出我们需要定义两个内容
一个是-p参数.指定需要post的数据
还有一个是-T参数,指定使用的content-type
我在服务器端简单的写了一个脚本.将获取到的post请求输出到文件

然后在本地生成post.txt文件
内容为test=abc
使用ab进行测试
ab -n 1 -p post.txt http://192.168.0.2/test.php
发现服务器端接受到了请求,但是没有受到post的数据
使用类型之后.也还是不行
ab -n 1 -p post.txt -T 'text/html' http://192.168.0.2/test.php
使用get方式测试
ab -n 1 http://192.168.0.2/test.php?test=abc
服务器端则可以正常工作
和开始说的一样.翻烂了google也没有找到
最后只能用wireshark抓包
最后发现content-type一定要设置成为
application/x-www-form-urlencoded
最后如下测试.才最后通过
ab -n 1 -p post.txt -T 'application/x-www-form-urlencoded' http://192.168.0.2/test.php
还有postfile
如果有多条记录
内容可以写成

test1=a&test2=b

类似这样即可
这个也是文档中没有提及的,让我一开始以为postfile的格式有误.
网上有提到过一种格式

test1=a test2=b

这种是不对的
这样的ab会把整个

a回车test2=b

当作test1这个field传送出去

Last modification:November 26th, 2018 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

2 comments

  1. Johnny Woo

    没用过CGI方式写过,所以不是很了解.
    看来基础知识还得加固才行.
    不过光是postfile的内容
    就从没有一个网页提到过
    唯一一个提到的.还是错的.

  2. 哈哈

    貌似post方法的content-type就应该是这个吧
    我记得从用c的cgi包写cgi上传程序的时候就是这么写的......

Leave a Comment Cancel reply