接口测试概念及应用
什么是接口?
可以理解为一个连接前端和后端的“桥梁”,接口就是前端访问后端逻辑的一个访问路径,后端会将数据处理结果通过接口返回给前端。
接口测试的意义?
1.越底层发现bug,它的修复成本是越低的。
2.前端随便变,接口测好了,后端不用变。前后端是两拨人开发的。
3.检查系统的安全性、稳定性,前端传参不可信;
比如京东购物,前端价格是不可能传入-1元,但是通过接口可以传入-1元.
4.如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
5.接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
6.现在很多系统前后端架构是分离的,从安全层面来说:
a.只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
b.前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是设计到用户的隐式信息,如身份证,银行卡等。
HTTP概念及原理
URL:统一资源(图片、网页、视频…)定位符
组成:协议+域名/主机IP+端口+具体路径(/login)+参数
HTTP:超文本传输协议
请求行:请求方法、请求地址(url)、协议版本
请求头(常见):
Content-Type:指定服务器返回的响应内容类型
Set-Cookie:设置要在客户端存储的 Cookie 值。可以使用该头部为客户端设置会话标识符、跟踪信息等。
User-Agent:标识客户端使用的浏览器和操作系统信息。
Accept:指定客户端能够处理的内容类型,即可接受的媒体类型。
Content-Length:指定请求体的长度。
请求体:请求参数
请求方法:有8种
响应行:协议版本、状态码、状态信息
常见状态码:
·200 0K//客户端请求成功
·400 Bad Request//客户端请求有语法错误,不能被服务器所理解
·401 Unauthorized//请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
·403 Forbidden//服务器收到请求,但是拒绝提供服务
·404 Not Found//请求资源不存在,eg:输入了错误的URL
·500 Internal Server Error//服务器发生不可预期的错误
·503 Server Unavailable//服务器当前不能处理客户端的请求,一段时间后可能恢复正常
响应头:客户端返回数据的信息,如大小、时间、返回数据格式等
响应正文:服务器返回的具体数据,常见的数据是HTML源代码。