在项目开发、部署过程中, 总免不了要对服务的一些接口进行简单的测试和验证, 在很多时候都是在服务器环境, 因此掌握一个命令行http接口测试工具还是非常有必要的, 我常用的主要有三个, wget、curl和HTTPie.

01 wget

wget是一个命令行下载工具,基本上linux上都会带有,支持HTTP /HTTPS/FTP等多个协议, 专注于下载, 比较稳定;

常见用法:

# 递归下载小米官网所有链接, 一般不用-r参数
wget -r https://www.mi.com
# 断点续传, 在下载大文件的时候很有用 !
wget -c http://www.examples.com/file
# 将要下载的文件url放在urls.txt文件中, 实现批量下载
wget -I urls.txt

02 curl

curl也是个一般内置于linux的命令行http工具,有上传下载功能, 相比wget来说curl可以有更多定制请求参数,这点非常有用;

常见用法:

# 使用-o将下载的数据写入到指定文件, --progress表示显示下载进度条
curl http://man.linuxde.net/test.iso -o filename.iso --progress
# 往接口POST文件
curl http://api.example.com/profile -F "image=@test.jpg"
# 往接口POST多个参数
curl http://api.example.com/profile -F "image=@test.jpg" -F "user=Peter"
# 往接口POST表单数据
curl http://api.example.com/profile -d "user=Peter&passwd=Peter"

03 HTTPie

这是一个python写的命令行http工具,支持json, 语法高亮等更多特性,支持python2.x和python3.x和多个系统平台,项目地址在此:https://github.com/httpie/httpie

安装:

# pip安装
pip install http
# ubuntu安装
apt-get install http
# Mac
brew install mac

常见用法如下:

# 模拟表单提交
http -f POST http://example.com name=test
# 表单和文件提交
http -f POST http://example.com name='Peter' image@/home/Peter/face.jpg
# 使用重定向上传文件
http http://example.com/file <file.json
# 下载文件
http http://example.com/file >file.json
# 或者像wget那样
http --download http://example.com/file

04 Postman

Postman是一个非常优秀的GUI 接口测试工具,支持MacOS、Linux、Windows三大平台,设计好看,功能丰富齐全,简单易用,唯一的缺点是占资源有点多…

  • 下载链接:Download Postman

总结:

能实现目的工具就是好工具, 当然了在此基础之上, 易用和美观是我选择的标准,所以命令行工具我选HTTPie,GUI工具我选Postman。