Apache自带的ab命令虽然很简单,但是对于调试的时候的测试,还是非常有效的,因此,做网站性能测试,还是有必要了解下的,关于ab详细命令,本文不做介绍,本文只介绍使用POST数据的使用方法。
测试环境
WEB环境服务器,并部署好SHOP系统
使用Xshell连接服务器
开始测试
login.ab 内容,该内容需要在登录的时候使用抓包工具进行抓包,我这里先使用了loadrunner进行了录制,并抓取了录制代码:
web_submit_data(
"user.php"
,
"Action={ip}user.php"
,
"Method=POST"
,
"TargetFrame="
,
"RecContentType=text/html"
,
"Referer={ip}user.php"
,
"Snapshot=t3.inf"
,
"Mode=HTML"
,
ITEMDATA,
"Name=username"
,
"Value={userLoginText}"
, ENDITEM,
//登录用户名
"Name=password"
,
"Value=123123"
, ENDITEM,
//登录密码
"Name=act"
,
"Value=act_login"
, ENDITEM,
"Name=back_act"
,
"Value={ip}"
, ENDITEM,
//登录后返回地址
"Name=submit"
,
"Value="
, ENDITEM,
LAST);
经过分析,我们发现,其中的关键值:
"Name=username"
,
"Value={userLoginText}"
, ENDITEM,
//登录用户名
"Name=password"
,
"Value=123123"
, ENDITEM,
//登录密码
"Name=act"
,
"Value=act_login"
, ENDITEM,
OK,有了这些字段,我们就可以使用工具先调试下,这里使用postman调试,看下效果咋样。
YES,成功了,看来我们的数据处理有效,因此我们就可以处理login.ab的内容了,这里还有一个简单的方式,也是通过postman处理,少废话,看图:
然后我们将文本框内红色区域的内容复制到login.ab即可。
接下来就可以开始测试了,上代码:
测试命令:
ab -n 10 -c 10 -k -p
"/root/login.ab"
-T
"application/x-www-form-urlencoded"
"http://192.168.219.130/xiaoqiangshop/user.php"
稍微解释下里面的参数:
-n requests Number of requests to perform
//在测试会话中所执行的请求个数。默认时,仅执行一个请求
-c concurrency Number of multiple requests to make
//一次产生的请求个数。默认是一次一个。
-k Use HTTP KeepAlive feature
-p postfile File containing data to POST
//包含了需要POST的数据的文件。
-T content-type Content-type header for POSTing
//POST数据所使用的Content-type头信息。
由于测试的是登录的数据,为了直观的看出测试结果,我们选用了数据表中的last_login字段,该字段会记录最新的登录时间,首先我们来看下数据库的原始记录:
执行命令
查看最新记录
我们惊奇的发现,我们的测试成功了,我们使用ab命令成功的发送了post数据。