黑马软件
接口:数据交互的入口和出口,是一套规范一套标准。
硬件,如USB,电源接口等。
软件,前后端开发时共同参考遵守的一套数据交互的标准规范。用接口可以省去大量的沟通成本,提高效率。一般架构师制定(API文档)。
文章图片
接口测试:测试后端实现是否符合接口规范(不是测试接口本身)。
实现流程:模拟客户向服务器发送数据,然后查看响应
要素1: 定位服务器资源(通过 URL 实现: http://www.baidu.com | http://127.0.0.1:8000/资源路径)
要素2: 模拟用户提交数据
要素3:查看响应的结果是否符合预期
HTTP请求方法
- GET(SELECT):从服务器取出资源(一项或多项)。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
- DELETE(DELETE):从服务器删除资源。
**增:**
?要素1:URL +POST
?要素2: 多个数据 ------> 方式1: 键=值&键=值方式2: JSON 格式
?要素3: 200 | 201 +添加的记录
**删:**
?要素1: URL +GET|DELETE
?要素2:方式1: 键=值&键=值
?要素3: 200|204 + 无
**改:**
?要素1:URL + POST|PUT(更合适)
?要素2: ------> 方式1: 键=值&键=值方式2: JSON 格式
?要素3:200 | 201 + 修改后那条记录
**查:**
?要素1: URL + GET
?要素2:常用方式1 URL?键=值&键=值....
?要素3:200 + 一条或多条记录
状态码:
序号 | 状态码 | 动词 | 说明 |
---|---|---|---|
01 | 200 OK | [GET] | 服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)幂等:无论执行操作多少次,结果都会执行1次结果相同 |
02 | 201 CREATED | [POST/PUT/PATCH] | 用户新建或修改数据成功 |
03 | 202 Accepted | [*] | 表示一个请求已经进入后台排队(异步任务) |
04 | 204 NO CONTENT | [DELETE] | 用户删除数据成功 |
05 | 400 INVALID REQUEST | [POST/PUT/PATCH] | 用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的 |
06 | 401 Unauthorized | [*] | 表示用户没有权限(令牌、用户名、密码错误) |
07 | 403 Forbidden | [*] | 表示用户得到授权(与401错误相对),但是访问是被禁止的 |
08 | 404 NOT FOUND | [*] | 用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的 |
09 | 406 Not Acceptable | [GET] | 用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式) |
10 | 410 Gone | [GET] | 用户请求的资源被永久删除,且不会再得到的 |
11 | 422 Unprocesable entity | [POST/PUT/PATCH] | 当创建一个对象时,发生一个验证错误 |
12 | 500 INTERNAL SERVER ERROR | [*] | 服务器发生错误,用户将无法判断发出的请求是否成功** |
对结果进行判断
序号 | 方法 | 预期结果 |
---|---|---|
01 | GET | collection:代码:200;数据:返回资源对象的列表(数组) |
02 | GET | collection/resource:代码:200;数据:返回单个资源对象 |
03 | POST | collection:代码:200/201;数据:返回新生成的资源对象 |
04 | PUT | collection/resource:代码:200/201;数据:返回完整的资源对象 |
05 | DELETE | collection/resource:代码:204;数据:返回为空 |
新增数据时,数据是 JSON 格式的,必须设置 浏览器的 http 请求头,不然会当成普通文本处理
?Content-Typeapplicaton/json; charset=utf-8 (记住)
?Content-Type :提交的内容类型
?application/json : 数据类型是 JSON 格式 | 大类型/小类型 img/jpgimg/png .....
?charset=utf-8:设置编码集,utf-8 支持世界所有字符
JSON:是一种数据载体。
JSON 传输数据效率更高,所以部分场景下使用 JSON 替换 html 和 XML_(ajax)
但是 JSON 语法描述性不及 标签语言,所以部分场景还得使用 html 和 xml。如果传递的是少量数据的话,可能使用 JSON。
语法:
格式1(JSON对象):{"键1":"值1","键2":"值2".....}
格式2(JSON数组):[值1,值2,值3.....]
格式复合: {"name":"huluwa","age":"8","aihao":["救爷爷",“吐火”,"吐水"]}
?[{"name":"huluwa","age":"8"},{"name":"aotuman","age":"10"}......]
【学习笔记之 接口测试】
推荐阅读
- 接口测试|接口测试学习笔记(一)
- 接口测试|微服务接口(怎么用Mock解决混乱的调用关系())
- APP接口自动化测试JAVA+TestNG之HTTP接口测试实例
- MediaType是application/x-www-form-urlencoded的接口测试方法
- Android SDK Web SDK 接口测试总结