如何使用web api测试工具siege和ab的post方法来发送json数据

本文介绍了如何使用web API测试工具siege和ab进行POST请求,并发送JSON数据。重点在于设置Content-Type为application/json,以确保服务器正确解析请求。通过不同尝试,发现siege需要依赖文件扩展名来设定content type,而ab工具则能方便地通过命令行参数完成设置。

首先我们的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 '10.23.54.151:19595/v1/db/nova/service_get_all POST <./postfile'

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

尝试2: 

siege -H 'Content-Type:application/json' -c 500 r 1 '10.23.54.151:19595/v1/db/nova/service_get_all POST <./postfile'

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

尝试3:

将postfile文件名修改为postfile.json

siege -c 500 r 1 '10.23.54.151:19595/v1/db/nova/service_get_all 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'   '10.23.54.151:19595/v1/db/nova/service_get_all'

测试搞定

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值