一、Ab是常用的性能測試工具,因為它支持windows……
通常使用的命令是ab –c –n –k -r,分別表示:模擬終端數、發送包數、請求是否帶keepalive、忽略錯誤,默認都是以GET方式去請求的,也就是下面這種請求就可以用它測試:
這里不再說了。
二、本次主要說測試post方式的請求,也就是瀏覽器抓包看到的下面這種:
需要加上兩個參數-p和-T,先說-T是指請求的內容類型,比如上圖的'application/x-www-form-urlencoded'就寫-T "application/x-www-form-urlencoded",-p后面跟的是要post的內容,以文本方式記錄即可,以我這次測試的例子為例:
-T參數就要寫成-T "multipart/form-data; boundary=----------------------------350e95503198",但事實上boundary的內容是可以自己定義的,只要是給服務端識別出內容在哪里而已
比如我測試時就是寫-T "multipart/form-data; boundary=---1234ceshi"。
-p參數跟的是內容,只要把上圖抓包結果保存為txt即可,比如test.txt,但是注意如果你修改了boundary,那么這里記得也要修改,如
-----1234abcd
Content-Disposition: form-data; name="midn"
7213c8d95ccc968d28d2d48b0c59a63e
-----1234abcd—
注意最后那兩個破折號不能省略哦。
那文中例子的測試命令行就是:ab -n 1 -p test.txt -T "multipart/form-data; boundary=---1234abcd" http://172.22.31.45:8080/check_client_need_query.html
如果出現“ab: Could not stat POST data file : Partial results are valid but processing is incomplete”這是因為ab對post支持不好,尤其是在windows下。
三、通過面的例子可以看到這種方法是存在缺陷的,就是test.txt的內容是寫死的,如果實際測試需要post不同的數據(比如不同的midn)怎么做?有兩個方法:
1、通過另外的腳本或者程序在測試前修改這個文檔
2、換loadrunner。。。