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

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


咨詢
建站咨詢
