使用web壓力測試工具 siege 和 ab 傳送帶json資料的post請求
首先我們的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 '172.19.180.166/fcgi-bin/rs/ POST <./postfile'
伺服器端接收到body為postfile檔案內容,但是content_type依舊是預設值“application/x-www-form-urlencoded”,致使伺服器端不能正確處理。
嘗試2:
siege -H 'Content-Type:application/json' -c 500 r 1 '172.19.180.166/fcgi-bin/rs/ POST <./postfile'
情況與1相同。說明不能通過-H和-T來修改content_type
嘗試3:
將postfile檔名修改為postfile.json
siege -c 500 r 1 '172.19.180.166/fcgi-bin/rs/ POST <./postfile.json'
content_type被正確設定為application/json,伺服器正常處理返回。原來siege只能通過檔案的副檔名來確定content type格式
ad
該工具比較好用,沒出現什麼問題,一條命令搞定:
ab -n 5000 -c 500 -p postfile -T 'application/json' '172.19.180.166/fcgi-bin/rs/'
測試搞定