在互联网大行其道的今天,身为一名电商平台的程序员,一定常常与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测试用例。目前这是最适合个人一种方式。
全文完。