如何用ab对webservice进行性能测试

模拟发送ws(webservice)请求

ws协议是http上的xml,所以发送ws请求,http请求体内必须是ws格式的xml。

使用工具 wizdl - Web Service GUI Test Tool,可以比较方便的生成你的ws应用的请求xml。

红框标识出来的部分就是发送的ws请求xml,把这段xml保存到一个xml文件中(wstest.xml)。

用curl验证ws的请求xml

为了验证我们生成的ws请求xml是否有效正确,可以使用curl来测试。

curl --data @wstest.xml http://172.16.24.215:81/example/ws/demoService?wsdl | xmllint --format -

说明:

  • 把ws的xml作为HTTP POST的请求数据:–data DATA HTTP POST data (H)
  • xmllint 命令对curl返回的xml进行格式化

使用ab进行ws性能测试

ab的帮助


相关的ab参数已经用红框标出,我们需要把wstest.xml直接作为HTTP的数据:

ab -n 100000 -c 20 -k -p wstest.xml -T "application/x-www-form-urlencoded" -m POST http://172.16.24.215:81/example/ws/demoService?wsdl
参数说明:

  • ‘-n 100000’ 发送10万次请求
  • ‘-c 20’ 使用20个并发(20个用户,绝对并发)
  • ‘-k’ 启用keep-alive
  • ‘-p wstest.xml’ 把wstest.xml文件的内容作为HTTP POST的数据
  • ‘-T’ 设置POST数据的Content-type
  • ‘-m POST’ 使用POST方法

ab测试结果

PS:测试的demoService方法里边执行了sleep(5)。