接口
是数据交互的入口和出口,是一套规范、标准
高效、灵活:U盘
架构师设计的(api文档):接口功能 +三要素描述
接口测试
接口测试就是测试后端实现是否符合接口规范;
为了程序安全、效率,模拟客户向服务器发送数据,然后查看响应。
三个要素:
- 定位服务器资源(通过URL实现http://www.baidu.com | http://127.0.0.1:8000/资源路径)
- 模拟用户提交数据
- 查看响应的结果是否符合预期
接口测试分类:
1、web接口测试(BS架构)
两种:
服务器接口测试:测试自己公司实现的接口
第三方接口测试:测试别的公司实现的接口
2、模块接口测试(CS架构)
接口测试环境搭建
搭建接口测试的测试环境,运行程序:
1、运维或开发实现程序部署,正常运行
2、自己搭建:(1)安装python;(2)安装依赖:pip install -r requirements.txt -i https://pypi.douban.com/simple(3)启动项目python run_server.py;(4)测试http://127.0.0.1:8000/api/departments 如果正常响应数据,那么程序安装启动正常
3、接口测试的插件
测试接口的测试工具,功能强大、使得测试更快捷方便:
火狐----restclient
谷歌----Postman
Java实现的测试工具----Jmeter
接口测试RESTful风格
RESTful是开发测试时所遵循的一些默认的风格规范,是约定俗成的,其中规范了URL实现方式,提交的数据的实现方式,响应数据的实现方式。。。
目的:为了程序的易读性和以维护性。
RESTful约束数据的四种操作和三个要素:
要素1:URL+请求方法
要素2:提取的数据
要素3:响应的结果
增:
要素1:URL + POST
要素2:多个数据:方式1:键=值&键=值 方式2:json格式
要素3:状态码200 | 201 + 响应内容:添加的记录
删:
要素1:URL + DELETE|GET
要素2:方式1:键=值&键=值
要素3:状态码200 | 204 + 无响应内容
改:
要素1:URL + POST|PUT
要素2:方式1:键=值&键=值 方式2:json格式
要素3:状态码200 | 201 + 修改后的记录
查:
要素1:URL + GET
要素2:常用方式:URL?键=值&键=值…
要素3:200 +一条或多条记录
GET和POST的区别:POST安全;POST没有大小限制;GET效率高。
状态码补充:404资源路径有误;505服务器异常;
接口测试:json
JSON是一种数据载体
互联网本质就是数据传输,数据传输就需要数据载体,比如页面信息就是存储在HTML这种数据载体中的。
HTML格式:
<html>
<head>
<title>hello</title>
</head>
<body>
<font color=red>hello</font>
</body>
</html>
xml格式
<person>
<name>zhenzhuo</name>
<age>18</age>
</person>
这两种数据载体缺点:
标签标记语言,有效数据占有率低
json优化数据传输:传输数据效率更高,所以部分场景下使用json替换HTML和xml
{"title":"hello","font":"hello world"}
{"name":"zhenzhuo","age":"18"}
如果传递少量的数据的话,可能使用json
json语法格式:
格式1(json对象):{“键1”:“值1”…}
格式2(json数组):[值1,值2…]
格式复合:{“name”:“zhenzhuo”,“age”:“18”,“xihuan”:[“唱歌”,“画画”,“出游”,“电影”]}
总结
1、新增数据时,数据谁json格式的,必须设置浏览器的HTTP请求头,不然会当成普通文本处理:Content-Type application/json;charset=utf-8
Content-Type:提交数据的类型
application/json:数据类型是json格式|大类型/小类型 img/jpg img/png …
charset=utf-8:设置编码集,支持世界所有字符