使用web压力测试工具 siege 和 ab 发送带json数据的post请求

首先我们的json字符串直接放在文件postfile中

在我们使用json格式时,注意一定要将headers的Content_type设置为application/json,否则服务器端可能不能正确识别传送的body格式。


siege

经过测试的版本为3.02和3.04

siege POST请求:

尝试1:

siege  -T ‘application/json‘ -c 500 r 1 ‘172.19.180.166/fcgi-bin/rs/ POST <./postfile‘

服务器端接收到body为postfile文件内容,但是content_type依旧是默认值“application/x-www-form-urlencoded”,致使服务器端不能正确处理。

尝试2: 

siege -H ‘Content-Type:application/json‘ -c 500 r 1 ‘172.19.180.166/fcgi-bin/rs/ POST <./postfile‘

情况与1相同。说明不能通过-H和-T来修改content_type

尝试3:

将postfile文件名修改为postfile.json

siege -c 500 r 1 ‘172.19.180.166/fcgi-bin/rs/ POST <./postfile.json‘

content_type被正确设置为application/json,服务器正常处理返回。原来siege只能通过文件的扩展名来确定content type格式

此处参考http://www.joedog.org/siege-faq/


ad

该工具比较好用,没出现什么问题,一条命令搞定:

ab -n 5000 -c 500 -p postfile -T ‘application/json‘   ‘172.19.180.166/fcgi-bin/rs/‘

测试搞定

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。