新聞中心
作為軟件測(cè)試人員,我們經(jīng)常需要驗(yàn)證Web應(yīng)用程序的行為。而對(duì)于Web應(yīng)用程序的測(cè)試中最重要的一件事情就是需要發(fā)送HTTP請(qǐng)求。發(fā)起HTTP請(qǐng)求包括多個(gè)步驟,如填寫(xiě)表單或者提交請(qǐng)求,驗(yàn)證服務(wù)器的響應(yīng)等等。我們通常在瀏覽器中執(zhí)行這些步驟,但是有時(shí)候,我們也可以使用命令行工具來(lái)執(zhí)行這些操作。在Linux中有一個(gè)非常強(qiáng)大的命令行工具叫做curl。本文將講解curl的基本使用和如何在測(cè)試中應(yīng)用。

寧鄉(xiāng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!
什么是curl?
curl是一個(gè)用于http、https、ftp、gopher、telnet、ldap、file等傳輸協(xié)議的命令行工具,開(kāi)源且跨平臺(tái)(支持Windows、macOS、Linux等)。它可以用來(lái)發(fā)送GET、POST、PUT、DELETE等HTTP請(qǐng)求,捕獲服務(wù)器的響應(yīng),并顯示在控制臺(tái)上。curl還可以通過(guò)Cookies和Headers進(jìn)行身份驗(yàn)證和授權(quán)。curl自身可以理解一些不同的命令行參數(shù),方式和形式,可以方便地完成大量的測(cè)試操作。
curl的基本用法
1. 發(fā)送GET請(qǐng)求
curl https://www.bdu.com
上述命令即為向百度主頁(yè)發(fā)送一個(gè)GET請(qǐng)求。執(zhí)行結(jié)果會(huì)將網(wǎng)頁(yè)源代碼展示在控制臺(tái)上。
2. 發(fā)送POST請(qǐng)求
curl -d “username=user&password=pass” https://www.example.com/login
上述命令即為向指定網(wǎng)址發(fā)送一個(gè)POST請(qǐng)求,并通過(guò)參數(shù)-d傳輸用戶名和密碼。執(zhí)行結(jié)果會(huì)將服務(wù)器返回的響應(yīng)打印在控制臺(tái)上。
3. 保存響應(yīng)內(nèi)容到本地文件
curl -o “result.html” https://www.example.com/test
上述命令即為將https://www.example.com/test的響應(yīng)內(nèi)容保存到本地文件result.html中。執(zhí)行結(jié)束后,文件result.html即可在當(dāng)前目錄下找到。
4. 發(fā)送Json數(shù)據(jù)
curl -H “Content-Type: application/json” -X POST -d ‘{“username”:”bob”,”age”:21}’ https://www.example.com/user
上述命令即為向指定網(wǎng)址發(fā)送一個(gè)POST請(qǐng)求,并在請(qǐng)求頭中設(shè)置Content-Type為application/json,請(qǐng)求體中傳輸ON數(shù)據(jù)。執(zhí)行結(jié)果會(huì)將服務(wù)器返回的響應(yīng)打印在控制臺(tái)上。
如何在測(cè)試中應(yīng)用curl?
使用curl進(jìn)行測(cè)試是非常有用的,我們可以通過(guò)curl來(lái)執(zhí)行一些常見(jiàn)的測(cè)試場(chǎng)景,如驗(yàn)證REST API的響應(yīng),驗(yàn)證表單提交的反饋等等。在這里,我們舉一個(gè)簡(jiǎn)單的例子,即如何驗(yàn)證用戶登錄的反饋是否正確。假設(shè)我們現(xiàn)在有一個(gè)用戶登錄頁(yè),URL為https://www.example.com/login,需要完成以下測(cè)試場(chǎng)景:
1. 用戶登錄成功后,響應(yīng)的狀態(tài)碼為200
2. 用戶登錄失敗后,響應(yīng)的狀態(tài)碼為401
3. 用戶登錄成功后,響應(yīng)中應(yīng)當(dāng)包含“Welcome”的字樣
為了完成這個(gè)測(cè)試,我們需要使用curl來(lái)模擬用戶提交請(qǐng)求。之一步是編寫(xiě)shell腳本,該腳本應(yīng)該包含能夠發(fā)起HTTP請(qǐng)求的curl命令。以下是一個(gè)典型的示例腳本:
#!/bin/bash
#USERNAME and PASSWORD are command line parameters
USERNAME=$1
PASSWORD=$2
#Login to example.com and save cookies
curl -c cookies.txt -d “username=$USERNAME&password=$PASSWORD” https://www.example.com/login
echo “”
#Access a page that is visible only when logged in
curl -b cookies.txt https://www.example.com/my-account
這個(gè)腳本使用curl進(jìn)行用戶登錄的功能,并保存登錄后的Cookie。其中,-c選項(xiàng)用來(lái)保存Cookie的數(shù)據(jù),以便之后使用;-d選項(xiàng)用于發(fā)送POST請(qǐng)求的數(shù)據(jù)。
完成之后,我們保存這個(gè)腳本為login.sh,并為其設(shè)置執(zhí)行權(quán)限:
$ chmod +x login.sh
現(xiàn)在,我們可以使用命令行來(lái)執(zhí)行這個(gè)腳本,并傳入用戶名和密碼:
$ ./login.sh user pass
執(zhí)行這個(gè)腳本會(huì)跳轉(zhuǎn)到指定網(wǎng)址進(jìn)行登錄,并訪問(wèn)該網(wǎng)站上一個(gè)需要登錄后才能訪問(wèn)的頁(yè)面。如果登錄成功了,則可以在控制臺(tái)上看到一條歡迎信息:“Welcome back, user!”如果登錄失敗,則返回響應(yīng)代碼401 Unauthorized。
需要注意的是,對(duì)于實(shí)際的測(cè)試任務(wù)而言,測(cè)試人員需要預(yù)先編寫(xiě)測(cè)試用例,并將這些測(cè)試用例轉(zhuǎn)化為不同的測(cè)試場(chǎng)景。測(cè)試人員還需要去學(xué)習(xí)不同的curl命令選項(xiàng),并結(jié)合測(cè)試場(chǎng)景和測(cè)試用例進(jìn)行測(cè)試。整個(gè)過(guò)程需要非常謹(jǐn)慎,因?yàn)橐粋€(gè)錯(cuò)誤或者實(shí)施失誤可能會(huì)導(dǎo)致整個(gè)軟件系統(tǒng)出現(xiàn)嚴(yán)重的問(wèn)題。
curl作為一個(gè)跨平臺(tái)的命令行工具,被廣泛用于發(fā)送HTTP請(qǐng)求。而對(duì)于軟件測(cè)試人員而言,掌握curl命令是十分必要的。curl可以用于執(zhí)行諸如驗(yàn)證REST API響應(yīng)、測(cè)試表單提交等任務(wù)。通過(guò)本文,讀者已經(jīng)掌握了curl的基本使用以及如何在測(cè)試中應(yīng)用curl。然后發(fā)揮你們的創(chuàng)造力,開(kāi)展針對(duì)性的測(cè)試,創(chuàng)造出更加高效的測(cè)試框架,為更好的產(chǎn)品提供保障。
相關(guān)問(wèn)題拓展閱讀:
- curl的用法
- linux curl 命令怎么在windows上實(shí)現(xiàn)
curl的用法
curl是一個(gè)利用URL語(yǔ)法在命令行方式下工作的文件傳輸工具。本文介紹了它的簡(jiǎn)單用法。
*******************************************************************************************************************************************************
curl是一個(gè)利用URL語(yǔ)法在命令行方式下工作的文件傳輸工具。
它支持很多協(xié)議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。
curl同樣支持HTTPS認(rèn)證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認(rèn)證, HTTP上傳, 代理服務(wù)器, cookies, 用戶名/密碼認(rèn)證, 下載文件斷點(diǎn)續(xù)傳, 上載文件斷點(diǎn)續(xù)傳, http代理服務(wù)器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理服務(wù)器, 通過(guò)http代理服務(wù)器上傳文件到FTP服務(wù)器等等,功能十分強(qiáng)大。
Windows操作系統(tǒng)下的網(wǎng)絡(luò)螞蟻,網(wǎng)際快車(FlashGet)的功能它都可以做到。準(zhǔn)確的說(shuō),curl支持文件的上傳和下載,所以是一個(gè)綜合傳輸工具,但是按照傳統(tǒng),用戶習(xí)慣稱curl為下載工具。
curl是瑞典curl組織開(kāi)發(fā)的,您可以訪問(wèn):
獲取它的源代碼和相關(guān)說(shuō)明。
鑒于curl在Linux上的廣泛使用,IBM在AIX Linux Toolbox的光盤(pán)中包含了這個(gè)軟件,并且您可以訪問(wèn)IBM網(wǎng)站:
1.ibm.com/servers/aix/products/aixos/linux/altlic.html 下載它。
curl的最新版本是 7.10.8,IBM網(wǎng)站上提供的版本為7.9.3。
在AIX下的安裝很簡(jiǎn)單,IBM網(wǎng)站上下載的rpm格式的包。
在
docs/,您可以下載到UNIX格式的man幫助,里面有詳細(xì)的curl工具的使用說(shuō)明。
curl的用法為:curl
其中options是下載需要的參數(shù),大約有80多個(gè),curl的各個(gè)功能完全是依靠這些參數(shù)完成的。
具體參數(shù)的使用,用戶可以參考curl的man幫助。
下面,本文就將結(jié)合具體的例子來(lái)說(shuō)明怎樣利用curl進(jìn)行下載。
1、獲得一張頁(yè)面
使用命令:curl
這是最簡(jiǎn)單的使用方法。用這個(gè)命令獲得了
指向的頁(yè)面,同樣,如果這里的URL指向的是一個(gè)文件或者一幅圖都可以直接下載到本地。如果下載的是HTML文檔,那么臘巖缺省的將不顯示文件頭部,即HTML文檔的header。要全部顯示,請(qǐng)加參數(shù) -i,要只顯示頭部,用參數(shù) -I。任何時(shí)候,可以使用 -v 命令看curl是怎樣工作的,它向服務(wù)器發(fā)送的所有命令都會(huì)顯示出來(lái)。為了斷點(diǎn)續(xù)傳,可以使用-r參數(shù)來(lái)指定傳輸范圍。
2、表單(Form)的獲取
在WEB頁(yè)面設(shè)計(jì)中,form是很重要的元素。Form通常用來(lái)收集并向網(wǎng)站提交信息。提交信息的方法有兩種,GET方法和POST方法。先討論GET方法,例如在頁(yè)面中有這樣一段:
那么瀏覽器上會(huì)出現(xiàn)一個(gè)文本框和一個(gè)標(biāo)為“OK”的按鈕。按下這個(gè)按鈕,表單就用GET方法向服務(wù)器羨鬧提交文本兄局罩框的數(shù)據(jù)。
例如原始頁(yè)面是在
www.hotmail.com/when/birth.html
看到的,然后您在文本框中輸入1905,然后按OK按鈕,那么瀏覽器的URL現(xiàn)在應(yīng)該是:“
www.hotmail.com/when/junk.cgi?birthyear=1905&;press=OK
”
對(duì)于這種網(wǎng)頁(yè),curl可以直接處理,例如想獲取上面的網(wǎng)頁(yè),只要輸入:
curl “
www.hotmail.com/when/junk.cgi?birthyear=1905&;press=OK
“
就可以了。
表單用來(lái)提交信息的第二種方法叫做POST方法,POST方法和GET方法的區(qū)別在于GET方法使用的時(shí)候,瀏覽器中會(huì)產(chǎn)生目標(biāo)URL,而POST不會(huì)。類似GET,這里有一個(gè)網(wǎng)頁(yè):
瀏覽器上也會(huì)出現(xiàn)一個(gè)文本框和一個(gè)標(biāo)為“OK”的按鈕。按下這個(gè)按鈕,表單用POST方法向服務(wù)器提交數(shù)據(jù)。
這時(shí)的URL是看不到的,因此需要使用特殊的方法來(lái)抓取這個(gè)頁(yè)面:
curl -d “birthyear=1905&press=OK”
www.hotmail.com/when/junk.cgi
這個(gè)命令就可以做到。
1995年年末,RFC 1867定義了一種新的POST方法,用來(lái)上傳文件。主要用于把本地文件上傳到服務(wù)器。此時(shí)頁(yè)面是這樣寫(xiě)的:
對(duì)于這種頁(yè)面,curl的用法不同:
curl -F upload=@localfilename -F press=OK URL
這個(gè)命令的實(shí)質(zhì)是將本地的文件用POST上傳到服務(wù)器。
有關(guān)POST還有不少用法,用戶可以自己摸索。
3、使用PUT方法。
HTTP協(xié)議文件上傳的標(biāo)準(zhǔn)方法是使用PUT,此時(shí)curl命令使用-T參數(shù):
curl -T uploadfile
www.uploadhttp.com/receive.cgi
4、有關(guān)認(rèn)證。
curl可以處理各種情況的認(rèn)證頁(yè)面,例如下載用戶名/密碼認(rèn)證方式的頁(yè)面(在IE中通常是出現(xiàn)一個(gè)輸入用戶名和密碼的輸入框):
curl -u name:password
www.secrets.com
如果網(wǎng)絡(luò)是通過(guò)http代理服務(wù)器出去的,而代理服務(wù)器需要用戶名和密碼,那么輸入:
curl -U proxyuser:proxypassword
任何需要輸入用戶名和密碼的時(shí)候,只在參數(shù)中指定用戶名而空著密碼,curl可以交互式的讓用戶輸入密碼。
5、引用。
有些網(wǎng)絡(luò)資源訪問(wèn)的時(shí)候必須經(jīng)過(guò)另外一個(gè)網(wǎng)絡(luò)地址跳轉(zhuǎn)過(guò)去,這用術(shù)語(yǔ)來(lái)說(shuō)是:referer,引用。
對(duì)于這種地址的資源,curl也可以下載:
curl -e
daniel.haxx.se
6、指定用戶客戶端。
有些網(wǎng)絡(luò)資源首先需要判斷用戶使用的是什么瀏覽器,符合標(biāo)準(zhǔn)了才能夠下載或者瀏覽。
此時(shí)curl可以把自己“偽裝”成任何其他瀏覽器:
curl -A “Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)” URL
這個(gè)指令表示curl偽裝成了IE5.0,用戶平臺(tái)是Windows 2023。(對(duì)方服務(wù)器是根據(jù)這個(gè)字串來(lái)判斷客戶端的類型的,所以即使使用AIX也無(wú)所謂)。
使用:
curl -A “Mozilla/4.73 (X11; U; Linux 2.2.15 i686)” URL
此時(shí)curl變成了Netscape,運(yùn)行在PIII平臺(tái)的Linux上了。
7、COOKIES
Cookie是服務(wù)器經(jīng)常使用的一種記憶客戶信息的方法。如果cookie被記錄在了文件中,那么使用命令:
curl -b stored_cookies_in_file
www.cookiesite.com
curl可以根據(jù)舊的cookie寫(xiě)出新cookie并發(fā)送到網(wǎng)站:
curl -b cookies.txt -c newcookies.txt
www.cookiesite.com
8、加密的HTTP——HTTPS。
如果是通過(guò)OpenSSL加密的https協(xié)議傳輸?shù)木W(wǎng)頁(yè),curl可以直接訪問(wèn):
curl
9、http認(rèn)證。
如果是采用證書(shū)認(rèn)證的http地址,證書(shū)在本地,那么curl這樣使用:
curl -E mycert.pem
參考讀物和注意事項(xiàng):
curl非常博大,用戶要想使用好這個(gè)工具,除了詳細(xì)學(xué)習(xí)參數(shù)之外,還需要深刻理解http的各種協(xié)議與URL的各個(gè)語(yǔ)法。
這里推薦幾個(gè)讀物:
RFC 2616 HTTP協(xié)議語(yǔ)法的定義。
RFC 2396 URL語(yǔ)法的定義。
RFC 2109 Cookie是怎樣工作的。
RFC 1867 HTTP如何POST,以及POST的格式。
文字
curl是免費(fèi)軟件,IBM公司對(duì)curl不提供技術(shù)支持。
curl官方網(wǎng)站:
linux curl 命令怎么在windows上實(shí)現(xiàn)
可以在windows里安裝curl命令,去官網(wǎng)下載下來(lái),然后照里面的安裝說(shuō)明安裝就可以了。。。
1、根據(jù)自己的操作系統(tǒng)位數(shù)和是否需要SSL下載相應(yīng)的版本。
這里下載curl-7.33.0-win64-ssl-sspi.zip,下載完成之后解壓到需要使用curl命令的目錄。這里為了方便我先直接解壓到當(dāng)前目錄。
2、在本窗口下打開(kāi)運(yùn)行該命令
【沒(méi)有建立系統(tǒng)環(huán)境變量,所以只能在本目錄下運(yùn)行】,檢測(cè)是否可以正常運(yùn)行
注意:
想得到上面的“在此處打開(kāi)命令窗口(W)”,請(qǐng)使用鍵盤(pán) Shift+鼠標(biāo)右鍵 即可
C:\common_command>curl -v -X OPTIONS
*Adding handle: conn: 0x205e100 *Adding handle: send: 0 *Adding handle: recv: 0 *Curl_addHandleToPipeline: length: 1 * -Conn 0 (0x205e100) send_pipe: 1, recv_pipe: 0 *About to connect() to
www.baidu.com
port 443 (#0) * Trying 220.181.112.244… * Connectedto
www.baidu.com
(220.181.112.244) port 443 (#0) *SSLv3, TLS handshake, Client hello (1): *SSLv3, TLS handshake, Server hello (2): *SSLv3, TLS handshake, CERT (11): *SSLv3, TLS alert, Server hello (2): * SSLcertificate problem: unable to get local issuer certificate*Closing connection 0 curl:(60) SSL certificate problem: unable to get local issuer certificate Moredetails here:
curlperforms SSL certificate verification by default, using a “bundle” of Certificate Authority (CA) public keys (CAcerts). If the default bundle file isn’t adequate, you can specify ternate file using the –cacert option. Ifthis HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verificationprobably failed due to a problem with the certificate (it might beexpired, or the name might not match the domain name in the URL). Ifyou’d like to turn off curl’s verification of the certificate, use the -k (or –insecure) option. C:\common_command>
4、加入系統(tǒng)環(huán)境變量
用戶變量和系統(tǒng)變量的區(qū)別:
答: 用戶變量:指在該用戶登錄后該環(huán)境變量有效。
系統(tǒng)變量:指任何用戶登錄該系統(tǒng),該環(huán)境變量都有效。
怎么使用:判斷該環(huán)境變量是否敏感或者是否有用戶限制,如果沒(méi)有則配置在系統(tǒng)變量;否則請(qǐng)根據(jù)敏感度或者限制情況配置在用戶的環(huán)境變量,有利于安全。
5、在其他路徑下測(cè)試是否可以使用CURL命令
成功!
6、該命令常用作用
答:
1、用于查看該網(wǎng)站可以允許有哪些http請(qǐng)求 【常用:GET, HEAD, POST,PUT, DELETE, OPTIONS】
我們經(jīng)常不希望有PUT和DELETE請(qǐng)求,如果有則需要關(guān)閉;因?yàn)槿菀自斐梢恍┌踩珕?wèn)題。
$ curl -v -X OPTIONS
*About to connect() to
www.aliyun.com
port 443 (#0) * Trying 42.156.220.114… connected *Connected to
www.aliyun.com
軟件測(cè)試linux命令curl的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于軟件測(cè)試linux命令curl,學(xué)習(xí)軟件測(cè)試必備:掌握Linux命令之curl,curl的用法,linux curl 命令怎么在windows上實(shí)現(xiàn)的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開(kāi)發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。
分享標(biāo)題:學(xué)習(xí)軟件測(cè)試必備:掌握Linux命令之curl(軟件測(cè)試linux命令curl)
文章地址:http://fisionsoft.com.cn/article/dhjsegh.html


咨詢
建站咨詢
