* 戳上方藍字「 開源先鋒 」關註我
推薦閱讀:
大家好,我是開源君!
傳統的 HTTP 客戶端,比如 curl 和 wget,雖然功能強大,可使用起來就有點麻煩了。需要使用者手動設定各種參數,像是請求方式、目標網址、請求頭、請求體等等。對於剛入門的小夥伴來說,可能會覺得一頭霧水。
今天開源君分享一個更適合新手的計畫 -
Hurl
。
計畫簡介
Hurl
是一個使用 Rust 語言開發的命令列工具,可以執行用簡單純文本格式定義的HTTP請求。既可以用於獲取數據,也可以用於測試HTTP會話。
Hurl是基於curl的,相當於在curl上層進行了一層封裝,可以很方便的在請求裏面添加cooki json等等各種數據,對新手來說非常的友好和人性化。
curl和Hurl程式碼請求對比
計畫特性
鏈式呼叫: 支持多個請求的鏈式呼叫,方便構建復雜的測試用例。
查詢和斷言: 支持多種型別的查詢和斷言,包括 XPath 和 JSONPath 等,可以滿足不同測試需求。
適用場景: 適用於 REST/JSON API、HTML 內容、GraphQL 甚至 SOAP API 等多種場景。
CI/CD 整合: 方便整合到 CI/CD 中,支持生成文本報告、JUnit 報告和 HTML 報告,方便測試結果分析。
計畫安裝
linux二進制安裝
INSTALL_DIR=/tmp
VERSION=4.2.0
curl --silent --location https://github.com/Orange-OpenSource/hurl/releases/download/$VERSION/hurl-$VERSION-x86_64-unknown-linux-gnu.tar.gz | tar xvz -C $INSTALL_DIR
export PATH=$INSTALL_DIR/hurl-$VERSION:$PATH
MacOS
brew install hurl
windows,在計畫release頁面進行zip或者exe檔下載安裝即可。
計畫展示
簡單的get請求
GET https://example.org
帶請求頭的get請求
GET https://example.org/news
User-Agent: Mozilla/5.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Post請求,帶json數據
POST https://example.org/api/tests
{
"id": "456",
"evaluate": true
}
也可以直接使用原生的json檔。
POST https://example.org/api/tests
Content-Type: application/json
file,data.json;
整體功能上有和Curl相近的地方,但是在curl的基礎上,Hurl做了最兩個最主要的增強功能:
1、連結多個請求:透過其捕獲功能,可以將接收到的數據註入到後續請求中。在標準的網路會話中,CSRF令牌是典型的範例。
2、測試HTTP響應:透過其斷言功能,可以輕松測試響應內容。
更多的計畫的細節功能,感興趣的小夥伴自行到計畫地址進行檢視:
計畫地址:
https://github.com/Orange-OpenSource/hurl