服务器在国外未备案网站,网站建设胶州,自建网站 支付宝,东莞寮步华衍学校目录#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结#xff08;尾部小惊喜#xff09;前言
接口测试#xff0…
目录导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜前言
接口测试大家关注更多的是哪个工具更优秀更好用。但是很少人关注到接口测试用例的设计问题也很少人会去写接口用例都代码化了嘛还写什么用例是吧
这样真的对么我们是不是忽略了什么呢回归测试的时候成百上千个接口执行下来没有报错你就真的对系统放心了么在接口测试之外我们还需要补充哪些功能用例来验证那些接口做不了或者不好做的场景呢
接口用例的设计也是一项非常重要的测试活动。通过一定的接口用例设计让我们编写的脚本更有目的性、更可靠才能体现接口测试的价值的意义而不是单纯以量取胜。测试目的明确符合接口测试基本原则断言清晰的接口自动化脚本才是好脚本。
某个用例的测试目的是什么
在进行接口测试脚本的编写前我们应该明确这批脚本的预期目标在哪里是为了验证什么内容。
根据个人的经验一般会把接口用例分成三类 单接口验证以验证接口参数、权限、返回值为主保证接口“能用”这类用例一般在接口设计定稿后配合Mock服务就可以完成用例编写
场景逻辑验证以用户场景为基础验证接口间的参数传递及业务流程能够正常流转用例复杂度较高需要非常熟悉业务与接口之间的关系。这是接口测试最核心的价值。
异常验证主要验证参数异常、逻辑异常等情况下接口是否能处理并给出友好的错误信息。
通常情况下关注参数异常的场景会比较多可以用等价类、边界值等方式来处理。 需要注意的是多关注下异常的返回信息是什么信息是否明确提示是否友好等等。
接口信息的来源
当我们明确好测试目标后再开始编写测试用例会有更针对性的去设计测试数据和接口组合。 接下来的问题是什么呢 去哪里确认你的接口信息是有效的
基本上有两种路径
接口文档开发人员都不喜欢自己写文档同时也很讨厌别人不写文档。所以测试人员如何获取一份真实有效的接口文档是件比较麻烦的事。一般团队内都会有一个统一的接口文档管理工具如果没有就找开发多磨麿让他们弄个并不难我们需要关注接口文档的有效性和及时性。现在也有很多的插件或者工具能够帮助研发人员自动生成接口文档例如Swaager、apidoc等等。
接口抓包如果什么都没有那就自力更生通过Fiddler之类的工具通过抓包分析的方式来获取接口这类的场景如果较多的话可以把Fiddler抓到的接口导出然后写个小程序直接转成接口平台可以识别的脚本效率会更高一些。
在获取到接口信息后需要与开发人员多交流明确参数的意义及来源以便我们针对性的做测试用例设计这个环节不要过多的自己猜很多测试人员经常会自己猜想直接找开发问就好了。
在这个接段还要梳理并区分接口的重要程度和优先级。这样就可以确认哪些接口优先设计用例哪些接口可以先放放在有限制的时间内做最大价值的事。
一些基本原则
拿到接口后明确了参数说明结合测试目标我们就可以开始设计并编写测试用例了。
区别于功能测试用例接口测试用例脚本一些原则需要注意 自动化好像是废话所有的用例应该是非交互试最常见的就是Token之类的生成需自动处理好我见过每次执行用例前需要自己手动生成Token再粘贴进去的脚本特别是分环境执行的时候。
独立性每个用例应该是独立的没有依赖的。需要在一个用例里处理好前置条件而不是多个用例相互依赖。
可重复用例测试可重复执行所以需要注意参数的生成方式。
可持续性如果代码修改导致已有接口测试执行失败必须修复代码问题或者测试代码逻辑。
断言那些事
在设计测试用例时还需要关注的是针对断言的设计好的断言能够帮助我们发现问题没有断言的用例脚本就是耍流氓完全没有意义。
个人在审核脚本时会重点关注这个很多测试人员为了数据好看或者因为是事后补写所以断言写的非常简单这类脚本其实都是在做无用功纯粹是为了KPI。
从接口层面看我们至少需要验证两点 数据结构验证验证接口返回的数据结构是否与事先定义的一样。调用方在处理数据时肯定是根据事先定义好的数据结构来解析数据的如果数据结构发生变化那对调用方来说是灾难性的契约测试考虑下。
核心数值的验证根据业务场景的不同可以有目的性的验证某些key的值是否与预期的一样可以结合数据库查询的方式来验证不同的自动化测试框架有不同的实现方式。这个就比较依赖测试人员对业务的了解。根据实际情况灵活的设计验证点。
除了以上两点外还有一些额外的验证点在需要的时候可以进行如涉及到其它方的数据流转、返回的URL是否可被访问返回的数据是否真的是必要的这点很重要过多的返回会导致很多意外的问题等等。根据实际情况进行补充。
这样通过一系列的方法设计出来的接口用例才会有一定的业务价值能够真正的帮助到团队提升测试效率对于这样的测试脚本全部PASS的结果才会让人安心。你能想象没有断言的脚本全部PASS你还放心的么
脚本的后期维护
测试用例脚本编写完成后并不意味着接口测试的成完。在其它的测试环节中如果发现因为接口问题而产生的BUG如响应异常、无数据返回等情况我们需要适当的补充到接口用例中避免类似的情况再次发生而我们没有验证到。
在积累到一定高质量的用例脚本后可以进一步挖掘这些东西的价值如转化成线上业务监控的脚本转换成精准测试的依据等。
还有更高端的玩法是借助混沌测试的思路独立拉个分支故意修改一些异常出来让测试用例验证能否发现这些BUG以验证测试用例的有效性。如果不能发现那就需要我们去思考如何改进测试脚本业内已经有类似的平台出现了。
关于测试数据的准备
多聊下测试数据准备的事这其实是接口测试中很重要的一个环节想要脚本可以在多个环境中运行那么测试数据就不能写的太死需要根据环境去自动获取一些数据值。
针对测试数据的准备一般的玩法也有三类 公共参数通过不同作用域及标识的区分有个专门的文件来处理一些共用数据的存放例如不同环境下的用户名。
数据集合通过特定的API或者SQL事先生成所需要的数据然后放到一个指定的集合参数或者文件都可以中在需要的时候从这里获取对应的数据值。
数据模板这个是数据集合的升级版根据业务数据流只需要填写一些简单的信息就可以自动生成一整套的业务数据例如个人做过的通过基础的学校信息就自动生成一套针对性的数据包含学校、班级、学科、学生等整套的数据。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图
一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜
人生留下的不仅是美丽更重要的是精神精神需要传承和发扬会激励我们去追求理想活就活的精彩乐就乐的舒畅记住榜样的力量传递爱的正能量。
积极的人在每一次忧患中都是看到一个机会而消极的人则是在每个机会都是会看到某种忧患。
大多数人高估了他们在一年内能做的事情而低估了他们在十年里能做的事情绝不以临时方案解决长期问题。