在對後端程序進行測試的時候,須要進行模擬鏈接或者書寫測試腳本.html
curl是一個很棒的命令.web
例如目標網站Url:
127.0.0.1:8080/check_your_status?user=Summer&passwd=12345678
經過Get方法請求:
curl protocol://address:port/url?args
curl http://127.0.0.1:8080/check_your_status?user=Summer&passwd=12345678
經過Post方法請求:
curl -d "args" "protocol://address:port/url"
curl -d "user=Summer&passwd=12345678" "http://127.0.0.1:8080/check_your_status"
這種方法是參數直接在header裏面的
如需將輸出指定到文件能夠經過重定向進行操做.
curl -H "Content-Type:application/json" -X POST --data (json.data) URL
curl -H "Content-Type:application/json" -X POST --data '{"message": "sunshine"}' http://localhost:8000/
這種方法是json數據直接在body裏面的json
使用Curl命令查看請求響應時間方法
curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"\n" http://www.36nu.com 後端
0.014::0.015::0.018::0.019::1516256.00
編寫測試實例:
curl -b 「user_trace_token=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGUID=20150515135257-a33a769c-fac6-11e4-91ce-5254005c3644」 http://10.10.26.164:1235/click?v=1&logtype=deliver&position=home_hot-0&orderid=10197777&userid=1942556&positionid=148&url=http%3a%2f%2fwww.lagou.com%2fjobs%2f317000.html%3fsource%3dhome_hot%26i%3dhome_hot-5&fromsite=http%3a%2f%2fwww.lagou.com%2fzhaopin%2fAndroid%3flabelWords%3dlabel%26utm_source%3dAD__baidu_pinzhuan%26utm_medium%3dsem%26utm_campaign%3dSEM&optime=2015-06-15_20:00:00
發現這樣仍是不能夠,url附帶的參數取不到。使用-d 參數傳遞url參數,使用-G 把請求方式配置爲GET就OK了,以下:
curl -b 「user_trace_token=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGUID=20150515135257-a33a769c-fac6-11e4-91ce-5254005c3644;LGSID=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGRID=20150617230732-4ea87972-1580-11e5-9a88-000c29653e90;」 -d 「v=1&logtype=deliver&position=i_home-1&orderid=10197777&userid=1942556&positionid=148&url=http%3a%2f%2f www.lagou.com%2fjobs%2f317000.html%3fsource%3dhome_hot%26i%3dhome_hot-5&fromsite=http%3a%2f%2fwww.lagou.com%2fzhaopin%2fAndroid%3flabelWords%3dlabel%26utm_source%3dAD__baidu_pinzhuan%26utm_medium%3dsem%26utm_campaign%3dSEM&optime=2015-06-15_20:00:00 」 -G http://10.10.26.164:1235/click
想要得到response返回的cookie怎麼辦,使用’-c’參數,同時能夠使用-b filename用文件方式表示cookie,配合-c使用更方便
能夠先用-c 命令生成一個cookie文件做爲模板,再修改這個文件做爲-b 參數的文件名。
使用以下:
curl -b c1.txt -c c2.txt -d 「v=1&_v=j31&a=406405635&t=pageview&_s=1&dr=http%3a%2f%2fwww.sogou.com%2ftuguang&dl=http%3A%2F%2Fwww.lagou.com%2F%3futm_source%3dad_sougou_pingzhuan&ul=zh-cn&de=UTF-8&dt=%E6%8B%89%E5%8B%BE%E7%BD%91-%E6%9C%80%E4%B8%93%E4%B8%9A%E7%9A%84%E4%BA%92%E8%81%94%E7%BD%91%E6%8B%9B%E8%81%98%E5%B9%B3%E5%8F%B0&sd=24-bit&sr=1600×900&vp=1583×291&je=1&fl=18.0%20r0&_u=MACAAAQBK~&jid=&cid=1312768212.1431333683&tid=UA-41268416-1&z=1204746223」 -G http://192.168.52.130:1234/collect
生成的c2.txt內容以下:服務器
192.168.52.130 FALSE / FALSE 1442217595 LGSID 20150914152955-652a13c5-5ab2-11e5-846d-000c29653e90
192.168.52.130 FALSE / FALSE 1442217595 PRE_UTM
192.168.52.130 FALSE / FALSE 1442217595 PRE_HOST www.huxiu.com
192.168.52.130 FALSE / FALSE 1442217595 PRE_SITE http%3A%2F%2Fwww.huxiu.com%2Ftuguang
192.168.52.130 FALSE / FALSE 1442217595 PRE_LAND http%3A%2F%2Fwww.lagou.com%2F%3F
192.168.52.130 FALSE / FALSE 0 LGRID 20150914152955-652a1630-5ab2-11e5-846d-000c29653e90
192.168.52.130 FALSE / FALSE 1757574737 LGUID 20150914151217-eedd0624-5aaf-11e5-8a69-000c29653e90cookie
使用curl命令訪問url並模擬cookie
編寫測試實例:
curl -b 「user_trace_token=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGUID=20150515135257-a33a769c-fac6-11e4-91ce-5254005c3644」 http://10.10.26.164:1235/click?v=1&logtype=deliver&position=home_hot-0&orderid=10197777&userid=1942556&positionid=148&url=http%3a%2f%2fwww.lagou.com%2fjobs%2f317000.html%3fsource%3dhome_hot%26i%3dhome_hot-5&fromsite=http%3a%2f%2fwww.lagou.com%2fzhaopin%2fAndroid%3flabelWords%3dlabel%26utm_source%3dAD__baidu_pinzhuan%26utm_medium%3dsem%26utm_campaign%3dSEM&optime=2015-06-15_20:00:00
發現這樣仍是不能夠,url附帶的參數取不到。使用-d 參數傳遞url參數,使用-G 把請求方式配置爲GET就OK了,以下:
curl -b 「user_trace_token=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGUID=20150515135257-a33a769c-fac6-11e4-91ce-5254005c3644;LGSID=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGRID=20150617230732-4ea87972-1580-11e5-9a88-000c29653e90;」 -d 「v=1&logtype=deliver&position=i_home-1&orderid=10197777&userid=1942556&positionid=148&url=http%3a%2f%2f www.lagou.com%2fjobs%2f317000.html%3fsource%3dhome_hot%26i%3dhome_hot-5&fromsite=http%3a%2f%2fwww.lagou.com%2fzhaopin%2fAndroid%3flabelWords%3dlabel%26utm_source%3dAD__baidu_pinzhuan%26utm_medium%3dsem%26utm_campaign%3dSEM&optime=2015-06-15_20:00:00 」 -G http://10.10.26.164:1235/click
想要得到response返回的cookie怎麼辦,使用’-c’參數,同時能夠使用-b filename用文件方式表示cookie,配合-c使用更方便
能夠先用-c 命令生成一個cookie文件做爲模板,再修改這個文件做爲-b 參數的文件名。
使用以下:
curl -b c1.txt -c c2.txt -d 「v=1&_v=j31&a=406405635&t=pageview&_s=1&dr=http%3a%2f%2fwww.sogou.com%2ftuguang&dl=http%3A%2F%2Fwww.lagou.com%2F%3futm_source%3dad_sougou_pingzhuan&ul=zh-cn&de=UTF-8&dt=%E6%8B%89%E5%8B%BE%E7%BD%91-%E6%9C%80%E4%B8%93%E4%B8%9A%E7%9A%84%E4%BA%92%E8%81%94%E7%BD%91%E6%8B%9B%E8%81%98%E5%B9%B3%E5%8F%B0&sd=24-bit&sr=1600×900&vp=1583×291&je=1&fl=18.0%20r0&_u=MACAAAQBK~&jid=&cid=1312768212.1431333683&tid=UA-41268416-1&z=1204746223」 -G http://192.168.52.130:1234/collect
生成的c2.txt內容以下:app
192.168.52.130 FALSE / FALSE 1442217595 LGSID 20150914152955-652a13c5-5ab2-11e5-846d-000c29653e90
192.168.52.130 FALSE / FALSE 1442217595 PRE_UTM
192.168.52.130 FALSE / FALSE 1442217595 PRE_HOST www.huxiu.com
192.168.52.130 FALSE / FALSE 1442217595 PRE_SITE http%3A%2F%2Fwww.huxiu.com%2Ftuguang
192.168.52.130 FALSE / FALSE 1442217595 PRE_LAND http%3A%2F%2Fwww.lagou.com%2F%3F
192.168.52.130 FALSE / FALSE 0 LGRID 20150914152955-652a1630-5ab2-11e5-846d-000c29653e90
192.168.52.130 FALSE / FALSE 1757574737 LGUID 20150914151217-eedd0624-5aaf-11e5-8a69-000c29653e90curl
-o:把curl 返回的html、js 寫到垃圾回收站[ /dev/null]
-s:去掉全部狀態
-w:按照後面的格式寫出rt
time_namelookup:DNS 解析域名www.36nu.com的時間
time_commect:client和server端創建TCP 鏈接的時間
time_starttransfer:從client發出請求;到web的server 響應第一個字節的時間
time_total:client發出請求;到web的server發送會全部的相應數據的時間
speed_download:下週速度 單位 byte/s
上面這條命令及返回結果能夠這麼理解:
0.014: DNS 服務器解析www.36nu.com 的時間單位是s
0.015: client發出請求,到c/s 創建TCP 的時間;裏面包括DNS解析的時間
0.018: client發出請求;到s響應發出第一個字節開始的時間;包括前面的2個時間
0.019: client發出請求;到s把響應的數據所有發送給client;並關閉connect的時間
1516256.00 :下載數據的速度
創建TCP鏈接到server返回client第一個字節的時間:0.018s – 0.015s = 0.003s
server把響應數據發送給client的時間:0.019s – 0.018 = 0.01side