curl模擬GET/POST請求、ab壓力測試
阿新 • • 發佈:2018-12-09
curl
在Linux中curl是一個利用URL規則在命令列下工作的檔案傳輸工具,可以說是一款很強大的http命令列工具。它支援檔案的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。 常見引數介紹:
-A/--user-agent <string> 設定使用者代理髮送給伺服器
-b/--cookie <name=string/file> cookie字串或檔案讀取位置
-c/--cookie-jar <file> 操作結束後把cookie寫入到這個檔案中
-C/--continue-at < offset> 斷點續轉
-D/--dump-header <file> 把header資訊寫入到該檔案中
-d/--data <data> HTTP POST方式傳送資料
-e/--referer 來源網址
-f/--fail 連線失敗時不顯示http錯誤
-H/--header <line> 自定義頭資訊傳遞給伺服器
-o/--output 把輸出寫到該檔案中
-O/--remote-name 把輸出寫到該檔案中,保留遠端檔案的檔名
-r/--range < range> 檢索來自HTTP/1.1或FTP伺服器位元組範圍
-s/--silent 靜音模式。不輸出任何東西
-T/--upload-file <file> 上傳檔案
-u/--user <user[:password]> 設定伺服器的使用者和密碼
-w/--write-out [format] 什麼輸出完成後
-x/--proxy <host[:port]> 在給定的埠上使用HTTP代理
-X/--request < command> 指定什麼命令
-v 顯示請求互動的詳細資訊
* 表示 curl 任務;
> 傳送的資訊;
< 返回的資訊
-#/--progress-bar 進度條顯示當前的傳送狀態
curl GET請求
curl -v 127.0.0.1:8080/login
Method:GET
curl -v 127.0.0.1:8080/upload
Method:GET
curl -v 127.0.0.1:8080/static/images/favicon.ico >> favicon.ico
Method: GET (獲取檔案資料儲存到檔案中)
curl POST請求
curl -v 127.0.0.1:8080/login -X POST -d "username=liuyh73&&password=acwab"
Method:POST
如果post資訊為json
格式的資料,則可以使用-H
引數來宣告請求的Content-Type:
curl -v 127.0.0.1:8080/login -X POST -H "Content-Type:application/json" -d '"username": "liuyh73", "password":"acwab"'
curl -v 127.0.0.1:8080/upload -F "[email protected]:/mygo/src/github.com/liuyh73/go-web-form/static/images/favicon.ico"
Method:POST
ab(apache benchmark)
-n 即requests,用於指定壓力測試總共的執行次數。
-c 即concurrency,用於指定的併發數。
-t 即timelimit,等待響應的最大時間(單位:秒)。
-b 即windowsize,TCP傳送/接收的緩衝大小(單位:位元組)。
-p 即postfile,傳送POST請求時需要上傳的檔案,此外還必須設定-T引數。
-u 即putfile,傳送PUT請求時需要上傳的檔案,此外還必須設定-T引數。
-T 即content-type,用於設定Content-Type請求頭資訊,例如:application/x-www-form-urlencoded,預設值為text/plain。
-v 即verbosity,指定列印幫助資訊的冗餘級別。
-w 以HTML表格形式列印結果。
-i 使用HEAD請求代替GET請求。
-x 插入字串作為table標籤的屬性。
-y 插入字串作為tr標籤的屬性。
-z 插入字串作為td標籤的屬性。
-C 新增cookie資訊,例如:"Apache=1234"(可以重複該引數選項以新增多個)。
-H 新增任意的請求頭,例如:"Accept-Encoding: gzip",請求頭將會新增在現有的多個請求頭之後(可以重複該引數選項以新增多個)。
-A 新增一個基本的網路認證資訊,使用者名稱和密碼之間用英文冒號隔開。
-P 新增一個基本的代理認證資訊,使用者名稱和密碼之間用英文冒號隔開。
-X 指定使用的和埠號,例如:"126.10.10.3:88"。
-V 列印版本號並退出。
-k 使用HTTP的KeepAlive特性。
-d 不顯示百分比。
-S 不顯示預估和警告資訊。
-g 輸出結果資訊到gnuplot格式的檔案中。
-e 輸出結果資訊到CSV格式的檔案中。
-r 指定接收到錯誤資訊時不退出程式。
-h 顯示用法資訊,其實就是ab -help。
- 安裝:CentOS環境
sudo yum -y install httpd-tools
ab -c 100 -n 10000 localhost:8080/login