在互聯網大行其道的今天,身爲一名電商平臺的程序員,一定常常與HTTP API打交道,一個常見的狀況即是作API測試。拋開能夠用單元測試代替的,不少時候須要真地發出HTTP請求才行。這些負責發出HTTP請求的東西多是一行curl
命令,多是一個.js
文件,也多是一個在postman中點擊按鈕的操做,但無論形態如何,它們即是API測試用例。儘管名字中帶有「用例」二字,但不少時候是由人來校驗結果的,用例更關注發出怎樣的HTTP請求。html
不一樣於天天在瀏覽器中發生成千上萬次的、平凡的HTTP(或HTTPS)請求,API測試用例是值得一番精心管理的,由於:git
API、服務,以及環境這三個維度上的區別,使得測試用例的數量顯著增長,如不進行管理,當要用時,要麼不得不從零開始再寫一遍腳本,要麼得翻查好久才能找到所需的用例。程序員
org-mode
是一款Emacs編輯器的擴展,它讓使用者可以用快速高效的純文本方式來記筆記、維護待辦事項、安排計劃,以及編寫文檔。org-mode
的精髓在於它的大綱組織能力,以及依託於Emacs的擴展能力,二者使其正好能夠勝任管理API測試用例的工做。一個.org
文件的示例以下圖所示github
儘管org-mode
提供了豐富的功能,但只是管理API測試用例的話,並用不上太多花裏胡哨的東西,只須要org-mode
的大綱功能和org-babel
特性便可。shell
首先用不一樣的.org
文件區分不一樣的環境。瀏覽器
接着用不一樣層級的headline區分不一樣的服務、資源類型,以及API。babel
而後用org-mode
的代碼塊語法來編寫HTTP請求。以請求https://httpbin.org/uuid
爲例curl
#+BEGIN_SRC restclient GET https://httpbin.org/uuid #+END_SRC
#+BEGIN_SRC
和#+END_SRC
分別表示開啓和結束代碼塊,restclient
表示這個代碼塊內的代碼能夠用Emacs的restclient-mode
來編輯。在代碼塊中,GET https://httpbin.org/uuid
表示以GET方法請求https://httpbin.org/uuid
。編輯器
安裝了restclient
後,將光標定位在代碼塊上並按下ctrl-c '
,能夠進入一個單獨的buffer編輯其中的源代碼工具
最後,若是配置了org-babel
,甚至能夠直接在代碼塊上按下ctrl-c ctrl-c
來發出HTTP請求。
能夠看到,HTTP響應的內容會保留在這個.org
文件中。
之前我也用過其它的工具來管理API測試用例:
restclient.el
,因而用了好一段時間的純restclient-mode
(沒有搭配org-mode
);再後來,我又回到了Emacs,並用org-mode
來管理這些API測試用例。目前這是最適合個人一種方式。
全文完。