Restful API Testing
2017-06-15 10:01:00 0 举报
AI智能生成
Restful API Testing
作者其他创作
大纲/内容
Restful Web API Testing
What
属于集成测试
测试软件系统组件之间的接口
将软件组件作为一个黑盒进行测试
验证接口是否满足业务需求
验证接口是否满足设计规范
主要测试类型
功能测试
性能测试
兼容性测试
稳定性测试
安全性测试
文档测试
Why
接口测试可以比UI测试更早开始,尽早暴露问题
接口测试可以测试UI测试覆盖不到的边界
接口测试比UI测试更稳定
接口测试比UI测试容易维护
接口测试比UI测试执行快的多
接口测试比UI测试节省资源
有了接口测试还需要UI测试吗?
Who
开发人员
编写接口设计文档
单元级别测试
与DB,其他 Service 集成测试
测试人员
系统级别测试
编写维护测试用例
When
尽早开始测试原则
设计时就开始测试
设计评审
开发人员编码时开始用例设计
编码完成时执行测试
尽可能在与UI集成前完成测试
Where
在测试环境进行全面的测试
线上对核心业务接口进行测试
仅做查询操作
How
借助工具模拟客户端调用接口
构造各种正确输入组合验证接口返回结果
构造异常输入验证接口异常处理
业务逻辑处理正确
业务场景正常
Restful API 通用错误
HTTP 方法选用错误
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。
OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。
HEAD:获取资源的元数据。
HTTP Status 错误
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
UIRI错误,包含动词
循环重定向
响应超时
服务异常,500错误
工具选择
Fiddler、Charles
适用于接口调试,手动测试
Postman + Newnam
适用于少量手动测试
参数化能力较弱
用例较多时维护复杂
不支持链接数据库
Jmeter
开源性能测试工具
支持多种协议
支持链接数据库
复杂的业务场景不易实现
断言编写不方便,报告不够灵活
Rest-Assured + TestNG
开源框架
DSL,BDD,用例编写简单易读
配置灵活简单
简单、多样的断言方法
JsonSchema
JsonPath
XPath
Hamcrest
Timeout
Exceptions
比较容易生成定制化的测试报告
可以借助JAVA语言及各种JAVA库实现更复杂的测试场景
策略
已有接口
覆盖所有接口
仅覆盖正常输入
验证返回状态
验证返回数据的结构(JsonSchema)
新增接口
覆盖正常输入和异常输入
根据业务过则验证数据
接口互查
DB检查
场景化用例覆盖
特殊接口(如overview/chartdata)
覆盖跟多的输入组合
与CI集成
每次更新后进行自动化回归测试
自动给出测试结果反馈
覆盖后端接口
挑战
缺乏必要的接口设计文档
返回结果复杂难于验证
数据准确性无法验证
误报
用例设计问题
测试环境问题
沟通问题
人力,技术
Rest-Assured Demo
收藏
收藏
0 条评论
回复 删除
下一页