内部接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口
对外包装的接口:后端与前端
前端:app(负责展示)
后端:后台提供数据,效验等等处理(负责业务逻辑)
测试最耗时在哪里? 业务逻辑、数据
排查以及修复一个缺陷的最长线在哪里? 服务端
加入接口测试环节的益处
可以更早的暴露问题
减少修复、测试成本
可以更快的了解业务需求,辅助我们更精准的定位分析问题
?
如何开展接口测试
参与服务端需求分析
有标准的接口文档,且文档是由客户端与服务端同学共同产出的
测试分层
业务逻辑处理、数据验证部分拆分到接口层做
客户端更多的关注于UI的展示以及前端的页面逻辑
?
移动端常用的接口协议
http/https
一种应用层协议,网络交互需要遵守的协议规范
由请求头和响应以及相应的信息头组成,http传输中,我们都是通过url来录找网络资源的
HTTP URL格式: http://host[:port][path]
? http表示要通过HTTP协议来定位?网络资源;
? host表示合法的Internet主机域名或IP地址;
? port?用于指定?个端?号,如果为空,则使?用缺省的端口80; ? path指定请求资源的具体地址
?
HTTP请求过程
? 连接:建??个socket连接,因为socket是通过ip和端?建立的,在这之前还会进?DNS解析将域
名解析成对应的ID地址。
? 请求:连接成功后,向服务器?发送GET/POST请求。
? 响应:服务器收到这个请求,进行处理,再将响应数据传送回客户端。
? 关闭连接:响应结束后,客户端与服务器断开连接,以保证其它客户端与服务器建?连接。
HTTPS请求过程
? 当浏览器向服务器请求?一个https请求时,服务器就把它的数字证书和公匙发送给浏览器。
? 浏览器检查证书是不不是由可以信赖的机构颁发的,检查证书的数字签名是不是正确,确认证书有效和此证书是此属于指定?站的。
? 浏览器使?证书中提供的公钥加密?个随机?成对称密钥,并?用此对称密钥对http协议请求内容进 ?加密,加密后的信息?一起发送到服务器。
? 服务器用自?的私匙解密浏览器?发送过来的对称钥匙,然后?用这把对称加密的钥匙解密加密过的 http协议请求内容。
? 服务器用对称钥匙对http协议响应内容进行加密,并发送给浏览器,浏览器通过对称密钥解密加密信息,获得http协议的响应内容。
?
HTTPS和HTTP的区别
https协议需要ca证书
http的信息是明?传输,https则是具有安全性的ssl加密 http是直接与TCP进?数据传输,?https是经过一层SSL,用的端?也不不?样,http是80,https是443
http的连接很简单,是?状态的;HTTPS协议是由SSL+HTTP协议构建的可进?加密传输、身份认证 的?络协议,?http协议安全
常见的?种请求方式
Get
向服务器获取信息,查询数据
Post
向服务?上传信息,新建数据
Put
改变服务器上的信息,修改数据
Delete
删除服务器上的信息,删除数据
Head
检查服务器上是否有某些信息,判断数据
?
HTTP的响应状态码
1xx 消息,?般是告诉客户端,请求已经收到了,正在处理
2xx 处理成功,?般表示:请求收悉、我明?你要的、请求已受理、已经处理完成等信息
3xx 重定向到其它地方。它让客户端再发起?个请求以完成整个处理
4xx 处理发?错误,责任在客户端,如客户端的请求?个不存在的资源,客户端未被授权,禁?止访问等
5xx 处理发?错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不?持等
常?状态代码、状态描述
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,举个例子:输?了错误的URL。
500 Internal Server Error:服务?发?不可预期的错误。
503 Server Unavailable:服务?当前不能处理客户端的请求,?段时间后可能恢复正常。
?
常?的请求、响应头
Accept 浏览?可接受的mime类型
Cookie 客户端就是通过这个报文头属性传给服务器
User-agent 允许客户端将它的操作系统 浏览器和其他属性告诉服务器Cache-control 是否希望被缓存
Cache-control 响应输出到客户端后,服务端通过该报?告诉客户端如何控制响应内存缓存 Cache-type 服务器通知浏览器回送数据的类型
Set-cookie 设置和?面相关联的cookie
接?测试主要关注点
? 响应结构 ? 数据来源 ? 数据格式 ? 数据正确性 ? 业务逻辑
?例设计—参数要考虑的
请求参数必选或选填(例:参数缺失服务端是否正常解析)
请求参数边界值(例:存储?长度10位,传参?大 于10位,接?是否处理)
与服务端是否存在附加协议(例例:交互过程中服务端需要验证head中的数据; 或者是否有加密协议)
输?合法、?法参数(例:服务端只接收int类型,传递了 String类型,参数为空或为null 参数中存 在特殊字符的)
请求参数逻辑分?(例:type=1:查询北京 Type=2:查询天津)
?例设计—结果要验证的
异常请求处理
请求头协议
响应结构
所有value值的 正确性、有效性
数据库交互是 否生效
排序
存在业务关联的 是否?效
并发请求
事务的回滚
响应时间
重复提交
?感数据
?例的管理与维护
? 功能测试模式:为了更快速会选?EXCEL、思维导图进??例管理。
? ?动化测试模式:使?测试脚本进?管理。
?
注:
对于接口的提测,建议是分批提测,最好不要所有接口统一提测,分批测试可以在较
短的时间内完成接?测试,也可以提前辅助客户端进?联调,不会占?较?的项?周
期。
接?需求分析
结合需求文档+接?文档来进?对照分析
? 分析出需求文档中所有涉及接?的功能点,并罗列功能点相关业务逻辑
? 分析接?功能点是否包含在了接口文档中
? 分析接?文档中描述的实现是否能够满足或者覆盖接?功能点及其业务逻辑
? 是否需要上层服务支持,服务端是否已提交数据需求建议先与服务端达成?一致:
? 需求宣讲完成后,优先产出接?文档(便便于测试同学进?接?分析)
? 接?文档与客户端先?行行确认,再进?接?开发(预防后续反工的风险)
? 服务端提供接?开发排期表(方便进?测试排期)
如何抓包
抓包数据分析
断点
重写
弱网测试
?
弱网配置
bandwidth —— 带宽,即上行、下行数据传输速度
utilisation —— 带宽可?用率,大部分modern是100%
? round-trip latency —— 第一个请求的时延,单位是ms。
? MTU —— 最?传输单元,即TCP包的最?size,可以更真实模拟TCP层,每次传输的 分包情况。
? Releability —— 指连接的可靠性。这?指的是10kb的可靠率。用于模拟网络不稳定。
? Stability —— 连接稳定性,也会影响带宽可?性。用于模拟移动网络,移动?网络连接 一般不可靠
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
?
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取?
?