CURL命令---接口测试之必要技能
如果你经常需要和各种API打交道,我们都知道测试接口是一件非常枯燥的事情,我们需要频繁的打开浏览器,输入URL,以此来检测API的功能完整性,或者下载各种测试工具。
❓有什么方法可以即高效又快速的测试API呢
今天所接触的是一个可以帮助我们进行接口测试的工具--CURL命令
Curl其实是一种用URL语法,它是一种传输数据工具,是通过命令来进行工作的。让我们可以不需要浏览器也可以发送命令,也可以传输数据等等给你功能。它支持跨平台的操做,可以在Windows,LInux,Unix等主流操作系统上进行操做。
curl url
例如我们curl百度试一试
我们发现这样是可以访问到百度,并获取到百度的首页信息的。哈哈,这样我们就初步了解了Crul命令的使用。但是光是这些还远远不够,crul的功能还很多,接下来就请听我慢慢道来。
Curl的核心功能,就是依靠着强大且丰富的参数库,具体常用的参数在网上可以搜到许多,这里我只介绍我常用的和后端程序猿必备的测试接口所需要的参数。
说明:
本人知识阅历有限,所以这里会介绍不全,如有大佬需要补充,欢迎评论
curl命令默认发送的是get请求,也就和直接在浏览器的地址栏输入URL的效果是一样的
,也就是说我们在通过curl http://www.baidu.com的时候默认是get请求。
❓那么我们该如何发送POST或者PUT等其他请求方式的请求呢?
curl -X GET url
curl -XGET url
-X/--request 指定什么命令
【案例分析】
例如我们有一个API接口是/student/queryAll 主机为本机 端口为8080 请求方式为Get,
那么我们通过如下方式即可访问此API
curl -X POST url -d {参数列表}
-d/--data
HTTP POST方式传送数据
Content-Type ,使用参数 -- header或者-H
【案例分析】
但是这样的访问是无法解析中文的
这里传入中文的参数,在输出的时候会以GBK的形式进行编译,所以无法访问,如果需要解决,可以将编码格式转化成UTF-8。
传入JSON格式的参数
curl -H "Content-Type:application/json" -X POST --data '{\"user\": \"admin\",\"passwd\":\"12345678\"}' http://localhost:8080/login
注意:
使用CURL命令的时候默认是不识别双引号
,遇到单双引号嵌套的时候,需要使用\反斜杠进行转义
-H 或者–header也可以通过指定标头名为Reference设置值为指定的值
curl -H 'Referer: https://google.com?q=example' https://www.example.com
curl --header 'Referer: https://google.com?q=example' https://www.example.com
确切的说-H是添加标头
-e 参数用来设置 HTTP 的标头Referer,表示请求的来源。
curl -e 'https://google.com?q=example' https://www.example.com
-i 会先打印标头信息,然后空一行,在地下打印网页的源码
【示例】
curl -i https://example.com
一般多用于爬取网页相关的数据信息,分析网页源码等使用。