先简单介绍下ab,ab是apache自带的一个轻型压力测试工具,使用简单,安装方便,一般可以在apache的bin目录下找到,直接使用cmd进入apache的bin目录,输入ab -help查看使用帮助, 若出现以下页面则说明可以正常使用:
若不能正常使用或者apache的bin目录下找不到ab.exe,则可以自行网上下载ab.exe,在cmd下进入ab.exe目录下使用即可。
具体的参数使用就不一一介绍了,本文主要说明-n -c -T -p -H 参数,这几个是在进行带多个header信息的post请求压力测试中要用到的。
-n 指定请求数 如 -n1000 指向要测试的url发送1000个请求
-c 并发数,也就是一次发送多少请求 如-c100 说明每次发送100个请求
-T post发送的数据类型,也就是header中content-type的值 如-T application/json 说明发送的是json数据
-p 使用post发送数据,后面跟发送内容,以文件路径的形式 如 -p data.txt 说明用post发送data.txt里面的内容,要注意的是data.txt里面的数据格式要和-T中声明的一致,如-T application/json 则data.txt格式就必须以{"name1":"xxx","name2":"xxx"}的形式
-H 在header中添加信息 如-H “token:xxx” 则指在header中增加一行token:xxx的信息,但是增加多行信息-help中没有说明,在试过各种分割方式之后,绝望的发现增加多行header信息只需要再加一个-H就行,如 -H “token:xxx” -H “client:xxx” 就可以同时增加两行header信息
最后跟上要测试的url就行,最终命令为:
ab -p data.txt -T application/json -H "client:xxx" -H "token:xxx" -n400 -c400 http://localhost:8080/xxx
指以post形式一次发送400个request给http://localhost:8080/xxx,request body的内容为data.txt,request header 的内容为"content-type:application/json client:xxx token:xxx"。
有话要说