目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
接口测试,其实就是验证接口内部处理逻辑是否正确;我们既要保证单接口的正确性,也要保证接口的业务逻辑正确性,主要体现在两方面:
输入正确的测试数据,验证接口正常处理后返回的结果是否正确(数据结构&数据内容);
输入异常的测试数据,验证接口能否正确处理异常数据并返回特定提示,是否合理,是否健壮;
简单来说
正确接受合法 Request 入参;
正确拒绝非法 Request 入参;
这两种情况都是要验证的,都属于正向测试。
反向测试
正向测试相对应的是反向测试
反向测试是指:测试流程的反向测试或者是功能的反向测试,这是一个在业务测试里的概念,例如:支付付款是正向测试,那么退款是反向测试
为什么说接口测试如此重要?
从它对项目的影响来说,接口测试直接测试后端服务,更加接近服务器上运行的代码程序,也更能发现影响范围广泛的 Bug。
越接近底层的 Bug,影响用户范围越广
随着中台化、服务化的发展,一套服务支持多种终端,例如 Android 端、iOS 端、Web 端等,这些服务都是由一套后端服务支持的。
如果在Web端发现一个界面问题,影响的只是Web端用户,倘若一个服务宕掉,影响的就不止是Web端,还有Android 端、iOS 端
接口测试的优越性
接口测试更容易和其他自动化系统相结合;
相对于界面测试,接口测试可以更早开始,也可以测试一些界面测试无法测试的范围,因此它使测试更早的投入这句话变成现实;
接口测试还可以保障系统的鲁棒性,使得被测系统更健壮。
不同协议形式的测试
HTTP 协议的接口;
RESTful 格式的接口;
WebService 的接口;
RPC 协议的接口;
其实无论是哪一种形式的接口,它们都是通过某一种传输协议,在 Client 端和 Server 端之间来完成数据传递的。
假如测试的是 Web 端网站,那么 Client 端就是浏览器,Server 端就是 Web 服务,那么浏览器和 Web 服务之间,就是通过 HTTP 协议传输的;
测试的是移动端的app,那么 Client 端就是你的设备上安装的极客时间应用,Server 端就是 RESTful 格式的接口服务,那么极客时间的应用和 RESTful 格式的接口服务,就是通过 JSON 格式的数据来传递的。
接口测试其实就是模拟调用方,比如 Client 端,通过接口通信来检测被测接口的正确性和容错性
接口测试工作场景
1、单接口的测试
单接口测试的重点,其实就是保证该接口的正确性和健壮性。也就是说,你既要保证这个接口可以按照需求,正确处理传入的参数,给出正确的返回;
也可以按照需求,正确的拒绝传入非正确的参数,给出正确的拒绝性返回。
需要有足够的用例保证接口能正确处理各种正常情况和异常情况
2、业务流程的接口测试(多接口测试)
主要是保障通过多个接口的串联操作可以完成原来需求中提出的业务逻辑
重点在于业务流程是否能跑通。
拓展:我们更需要关心业务流和数据流的关系,并不需要再过度关心如何用业务流的方法覆盖更多的代码逻辑异常
3、多个接口串行分析
在大部分的测试场景中,我们都需要串行多个接口,才能完成一个完整的业务逻辑;多个接口之间并不是随意组合的,而是按照业务逻辑、通过数据传递来完成的。所以要完成整体业务逻辑的接口测试,需要理清每个流程的数据流程,而数据流程驱动了业务流处理。
接口测试工作实践
分层测试中为什么在单元测试和界面测试之间要加入一层接口测试的主要原因之一。
通过单接口测试,可以更加接近于单元测试;
通过业务流的接口测试,可以更加接近于界面所承载的交互中的业务流验证
这也是为什么现在很多人在提倡将测试模型由原来的金字塔形往菱形转变的依据之一了。
接口测试总结
接口测试的执行方式、设计思维都和业务测试不完全一致,它们既有交集又有差异。
交集部分是它们都会涉及到业务逻辑测试,但是接口测试更加关注有数据流驱动的业务流程,而不再着眼于代码异常、代码边界等,这些边界问题在接口测试过程中已经由单接口测试完成了。
接口测试在单接口测试的设计思维上也更加贴近于代码的单元测试,但它还是站在 Client 端的角度来完成测试;
而接口测试的业务逻辑测试更加靠近手工业务测试,但却更加聚焦于业务逻辑本身,不再将一些非法业务异常放到该部分进行测试。
在测试手段上,接口测试算是技术驱动和业务驱动双管齐下的工作(界面测试却是业务驱动为主的工作)
因此,你需要借助一定的工具来完成它。这个工具既有可能是成熟的工具,也有可能是你自己写的代码,因此,测试技术会在接口测试阶段,变得和业务知识一样重要。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只要心怀梦想,坚持不懈,付出努力,你就能够实现自己的目标。不要被困难击倒,勇敢面对挑战,因为成功属于那些敢于追求的人。无论前路如何曲折,相信自己,不断前进,最终一定会到达理想的彼岸。
每个人都有自己的梦想和追求,但只有那些勇敢、坚定、不断努力奋斗的人才能实现自己的目标。不要让任何人或事情成为你前进的障碍,相信自己,全力以赴,你一定能够创造出属于自己的辉煌!
只有勇于追求、不断奋斗的人,才能获得真正的成功。无论前路多么坎坷,我们都要坚持自己的梦想,永不放弃,不断努力。相信自己,你一定可以成为更好的自己!