接口测试
是什么?
后端实现是否符合接口规范
为什么?
程序安全、效率
怎么用?
模拟客户向服务器发送数据,然后查看响应
要素1:定位服务器资源(url)
要素2:模拟用户提交数据
要素3:查看响应是否符合预期
接口测试分类:
web接口测试(B/S架构项目)
服务器接口测试:测试自己公司的实现的接口
第三方接口测试:测试别的公司的实现的接口
模块接口测试(C/S架构项目)
接口测试:环境搭建
是什么?
搭建接口测试的环境,运行程序
怎么用?
运维或开发部署程序,正常运行
自己搭建
安装 python
安装依赖
启动项目
接口测试:插件
是什么?
测试接口的测试工具
火狐--RESTClient
谷歌--Postman
java 实现的测试工具:jmeter
为什么?
工具功能强大,使测试更快捷方便
RESTful风格(重点):
是什么?
开发测试时,遵守一些默认的规范,是约定成俗的,非强制的,RESTful风格是这些习惯中的一种
规范了url的实现方式,提交数据的实现方式,响应数据的实现方式。。。
为什么?
为了程序的易读性和易维护性
怎么用?
约束接口操作的四种操作(增删改查)及三要素(url,提交数据,响应数据)
增:
要素1:url + post
要素2:多个数据
方式1:键=值&键=值
方式2:json格式
要素3:200 | 201 + 添加的数据
删:
要素1:url + delete
要素2:方式1:键=值&键=值
要素3:200 | 204 + 无
改:
要素1:url + put(更合适) | post
要素2:
方式1:键=值&键=值
方式2:json格式
要素3:200 | 201 + 修改后的数据
查:
要素1:url + get
要素2:常用方式1:url?键=值&键=值...
要素3:200 + 一条记录或多条记录
状态码:
404--------资源路径错误
505--------服务器异常
接口测试:JSON
是什么?
* JSON是一种数据载体
* 互联网本质就是数据传输,数据传输需要数据载体,比如:页面信息存储在HTML这种数据载体中
* HTML 格式:
<html>
<head>
<title>hello</title>
</head>
<body>
<font color='red'>hello world</font>
</body>
</html>
XML 格式:
<person>
<name>huluwa</name>
<age>8</age>
</person>
缺点:
标签标记语言:有效占有率低
* JSON优化数据传输
{"title":"hello","font":"hello world"}
{"name":"huluwa","age":"8"}
为什么?
JSON传输数据效率更高,所以部分场景下使用JSON替换html和xml
但是JSON预发描述性不及标签语言,所以部分场景还得使用html和xml
如果传输少量数据,可能使用JSON
怎么用?
预发:
格式1(JSON对象):{"键1":"值1" , "键2":"值2" , ....}
格式2(JSON数组):[值1 , 值2 , 值3]
格式复合:{"name":"huluwa" , "age":"8" , "aihao":["救爷爷","吐火","吐水"]}
[{"name":"huluwa1" , "age":"8"},{"name":"huluwa2" , "age":"10"} , ...]
接口测试:实战
1、安装运行系统
2、获取读懂接口规范
从前期文档(API文档:应用程序编程接口)中提取接口清单
读懂接口清单
要素1:url + 请求方法
要素2:提交的数据
要素3:响应的结果
3、逐一进行接口测试
总结:
1、新增数据时,数据时JSON格式的,必须设置浏览器的http请求头,不然会当成普通文本处理
content-type application/json;charset=utf-8