RESTful学习和Postman调试
- 什么是RESTful
- SOAP和REST的区别
- 如何设计RESTFul风格API(动物园为例)
- REST风格的接口测试流程
- 如何编写功能测试计划
- 如何使用Postman验证测试用例
什么是RESTful
本质:是一种软件架构风格
核心:是面向资源
解决的问题:降低开发的复杂性,提高系统的可伸缩性
设计概念和准则:
网络上的所有事物都可以被抽象成为资源
每个资源都要唯一的资源标识符,对资源的操作不会改变这些标识
所有的操作都是无状态的
资源:就是网络的一个实体,或者说是网络上的一个具体信息(eg:一段文本,一张图片,一首歌曲,一段视频都可成为资源)
SOAP和REST的区别
SOAP WebService:
是一种跨编程语言和跨操作系统平台的远程调用技术;WebService通过HTTP协议发送请求和接受结果时采用XML格式封装,并增加一些特定的HTTP消息头,这些特定的HTTP消息头和xml内容格式就是SOAP协议
效率和易用性:
SOAP由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降。同时在学习成本和易用性上面也有所增加
RESTful由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时最大限度的利用了Http最初的应用协议设计理念
安全性:
RESTful风格对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景
SOAP的成熟性可以给需要提供多开发语言的,对于安全性要求较高的接口带来便利。
如何设计RESTFul风格API(动物园为例)
资源路径:
在RESTFul架构中,每个网址代表一种资源,所以网址中不能有动词,只能有名词。一般来说API中的名词应该使用复数
举例:
有一个api提供动物园zoo的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样
https://api.example.com/v1/zoos //动物园资源
https://api.example.com/v1/ansmals //动物资源
https://api.example.com/v1/employees //雇员资源
HTTP动词:
对于资源的操作(CRUD),由HTTP动词(谓词)表示
GET:从服务器获取资源(一项或多项)eg:/zoos/ID 获取某个指定动物园的信息
POST:在服务器新建一个资源,eg:/zoos 新建一个动物园
PUT:在服务器更新资源(客户端提供改变后的完整资源)eg:/zoos/ID 更新某个指定动物园的信息
PATCH:在服务器更新资源(客户端提供改变的属性)
DELETE:从服务器删除资源 eg:/zoos/ID 删除某个动物园信息
REST风格的接口测试流程
了解接口格式-》编写测试用例-》测试用例评审-》开始测试-》完成测试报告-》结束
如何编写功能测试计划
需求描述:
GET: http://localhost:8080/MyWebsite/user/
Header: Content-Type = application/json
Body: 空
Response: 返回所有User对象
Status code: 200
GET: http://localhost:8080/MyWebsite/user/{id}
Header: Content-Type = application/json
Body: 空
Response: 返回指定id的User对象
Status code: 200
POST: http://localhost:8080/MyWebsite/user
Header: Content-Type = application/json
Body: name(String类型,不为空不可重复),age(int类型,在0~100),salary(double类型)
Response: 新加User对象
Status code: 201
PUT: http://localhost:8080/MyWebsite/user/{id}
Header: Content-Type = application/json
Body: name(String类型,不为空不可重复),age(int类型,在0~100),salary(double类型)
Response: 修改User对象
Status code: 200
DELETE: http://localhost:8080/MyWebsite/user/{id}
Header: Content-Type = application/json
Body: 空
Response: 删除id的User对象
Status code: 204
DELETE: http://localhost:8080/MyWebsite/user
Header: Content-Type = application/json
Body: 空
Response: 删除所有的User对象
Status code: 204
测试计划:
如何使用Postman验证测试用例