今天專門來討論下 API 測試中不可避免的部分之一 :cURL。
cURL(client URL)是一個常用的命令行工具,用於通過 URL 傳輸數據。
開發人員通過 cURL 將數據發送到服務器並接收來自服務器的數據。具體來説,任何用户都可以通過這個命令行界面(CLI)指定一個服務器 URL(要向其提交請求的位置)和要發送到服務器 URL 的數據。cURL 支持多種協議(方案),如 DICT、FILE、FTP(S)、GOPHER(S)、IMAP(S)、MQTT、RTSP 等,當然還有 HTTP。
根據使用的 cURL 協議不同,語法可能會發生變化。這裏我們將重點介紹 API 測試中最常用的 HTTP 協議 cURL 結構。標準 cURL 結構將如下所示:
curl - [method] URL [options]
cURL 在 API 測試中的地位
在 API 測試中,可以使用 cURL 自動執行文件傳輸或類似的一系列操作。它是一個非常有用的工具,比如説可以模擬客户使用 API 的行為。基本上,通過使用 cURL,用户只需花費很少的時間就可以將帶有所有必要參數的不同請求導入或導出到所需的任何應用或平台,如查詢參數、標頭、cookie、身份驗證等。
讓我們看一些例子。
在 API 測試應用中使用 cURL 命令
假設你想將一些 GET 請求 發送到服務器,該如何將它導入 API 測試應用裏呢?有兩種主要方法。
第一,你可以手動完成,找到源並從中複製請求 URL,打開應用,創建一個新請求,然後將其粘貼到 URL 字段中。
第二,你可以複製你想要發送的請求的 cURL,然後直接粘貼到應用中,而應用本身定義了你所需的請求類型,並從 cURL 中將所有信息粘貼到正確的請求字段中。
你覺得哪種方法花費更少的時間精力?答案很明顯了對不對!
一個簡單的 GET 請求的 cURL 就像這樣:
curl -X GET 'https://httpbin.org/json'
如你所見,cURL 包含請求方法、URL 而沒有額外參數。在 API 測試應用程序中,將顯示如下:
看,就這麼簡單!你只需要複製 cURL 並將其粘貼到應用程序中就可以了,這就是 cURL 在 API 測試中的使用方式。
現在,讓我們看一看帶有不同參數的複雜請求。
舉個例子,我從 Zoom API 中取了一個 PATCH 請求:
這個 cURL包含:
- 請求方法:
PATCH - header:
H ‘Content-Type:application/json’ - body:
d ‘{«stream_url»:»`https://example.com/livestream","stream_key":"ABCDEFG12345HIJ6789","page_url":"https://example.com/livestream/123`"}
在下面的截圖中,你可以看到所有請求數據都已成功傳輸到應用程序中了:
cURL 的優點在於你可以傳輸大量數據。 接下來我們將嘗試導入帶有查詢和變量的 GraphQL 請求:
在上面這個例子我們可以看到,除了標準的請求方法外,URL、header query 和其他變量也被列出來了。
在 API 測試程序中導入此 cURL 後,我們將看到所有請求部分都已正確傳輸:
如何創建 cURL?
我們討論瞭如何將不同的 cURL 導入應用程序,但我們用的是已經創建好的 cURL。
那麼問題來了,它們是如何創建的?每一個 cURL 都是由不同人在不同的應用程序或網站生成的,而這就像導入已經創建好的cURL一樣簡單。
在 API 測試應用 中,你可以生成 cURL,也可以導入它們。要創建 cURL,你需要打開任何請求,如果有需要也可以添加其他參數,點擊請求屏幕上方的三點圖標,選擇“導出 cURL” ,你的 cURL 就創建成功了。
生成的 cURL 如下所示:
你可以複製它並與他人分享,或者你可以像開頭那樣再次將其粘貼到應用程序中。
總結
對於任何 API 測試人員來説,cURL 都是一個非常有用的工具。它不僅可以節省大量時間,還可以避免在不同來源之間傳輸數據時出錯的情況。當然,這篇文章中只是展示了一些基礎知識,而 cURL 命令行要複雜得多。
- 源於:https://dev.to/mariamarsh/what-is-curl-and-why-is-it-important-in-api-testing-416m