你真的会写接口自动化测试脚本?0-1精通自动化测试实战,暴涨18K...


前言

开头,先说一下现主流的接口自动化测试框架配套,也是很多企业在使用的。

接口自动化测试:Python+requests+pytest+yaml+alluer+Jenkins;

Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/

除开测试脚本层面的编写,接口用例的设计也是一项非常重要的测试活动。
通过一定的接口用例设计,让我们编写的脚本更有目的性、更可靠,才能体现接口测试的价值的意义,而不是单纯以量取胜。

测试目的明确,符合接口测试基本原则,断言清晰的接口自动化脚本才是好脚本。

现在有很少人关注到接口测试用例的设计问题,也很少人会去写接口用例,都代码化了嘛,还写什么用例,是吧。这样真的是对的么?

我们是不是忽略了什么呢?
回归测试的时候,成百上千个接口执行下来,没有报错,你就真的对系统放心了么?
在接口测试之外,我们还需要补充哪些功能用例来验证那些接口做不了或者不好做的场景呢?

测试用例目的

在进行接口测试脚本的编写前,我们应该明确这批脚本的预期目标在哪里,是为了验证什么内容。

一般把接口用例分成三类:

单接口验证:以验证接口参数、权限、返回值为主,保证接口“能用”,这类用例一般在接口设计定稿后,配合Mock服务就可以完成用例编写;

场景逻辑验证:以用户场景为基础,验证接口间的参数传递及业务流程能够正常流转,用例复杂度较高,需要非常熟悉业务与接口之间的关系。这是接口测试最核心的价值。

异常验证:主要验证参数异常、逻辑异常等情况下,接口是否能处理并给出友好的错误信息。通常情况下,关注参数异常的场景会比较多,可以用等价类、边界值等方式来处理。需要注意的是多关注下异常的返回信息是什么,信息是否明确,提示是否友好等等。

接口信息的来源

接口文档:开发人员都不喜欢自己写文档,同时也很讨厌别人不写文档。所以测试人员如何获取一份真实有效的接口文档是件比较麻烦的事。般团队内都会有一个统一的接口文档管理工具(如果没有,就找开发多磨麿,让他们弄个,并不难),而且现在也有很多的插件或者工具能够帮助研发人员自动生成接口文档,很方便的。

接口抓包:如果什么都没有,那就自力更生,通过Fiddler之类的工具,通过抓包分析的方式来获取接口,这类的场景如果较多的话,可以把Fiddler抓到的接口导出,然后写个小程序,直接转成接口平台可以识别的脚本,效率会更高一些。

在这个接段,还要梳理并区分接口的重要程度和优先级。这样就可以确认哪些接口优先设计用例,哪些接口可以先放放,在有限制的时间内,做最大价值的事。

测试用例原则

自动化:好像是废话,所有的用例应该是非交互试,最常见的就是Token之类的生成,需自动处理好(我见过每次执行用例前,需要自己手动生成Token再粘贴进去的脚本,特别是分环境执行的时候)。

独立性:每个用例应该是独立的,没有依赖的。需要在一个用例里处理好前置条件,而不是多个用例相互依赖。

可重复:用例测试可重复执行,所以需要注意参数的生成方式。

可持续性:如果代码修改导致已有接口测试执行失败,必须修复代码问题或者测试代码逻辑。

接口测试断言

数据结构验证:验证接口返回的数据结构是否与事先定义的一样。调用方在处理数据时,肯定是根据事先定义好的数据结构来解析数据的,如果数据结构发生变化,那对调用方来说,是灾难性的(契约测试考虑下)。

核心数值的验证:根据业务场景的不同,可以有目的性的验证某些key的值是否与预期的一样,可以结合数据库查询的方式来验证(不同的自动化测试框架有不同的实现方式)。这个就比较依赖测试人员对业务的了解。根据实际情况灵活的设计验证点。

通过一系列的方法设计出来的接口用例,才会有一定的业务价值,能够真正的帮助到团队,提升测试效率,对于这样的测试脚本,全部PASS的结果才会让人安心(你能想象没有断言的脚本全部PASS,你还放心的么)。

后期维护

测试用例(脚本)编写完成后,并不意味着接口测试的成完。在其它的测试环节中,如果发现因为接口问题而产生的BUG(如响应异常、无数据返回等情况),我们需要适当的补充到接口用例中,避免类似的情况再次发生而我们没有验证到。

在积累到一定高质量的用例(脚本)后,可以进一步挖掘这些东西的价值,如转化成线上业务监控的脚本,转换成精准测试的依据等。

测试数据

公共参数:通过不同作用域及标识的区分,有个专门的文件来处理一些共用数据的存放,例如不同环境下的用户名

数据集合:通过特定的API或者SQL事先生成所需要的数据,然后放到一个指定的集合(参数或者文件都可以)中,在需要的时候,从这里获取对应的数据值。

数据模板:这个是数据集合的升级版,根据业务数据流,只需要填写一些简单的信息,就可以自动生成一整套的业务数据。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有勇往直前,才能不断超越自己的极限;只有敢于面对困难,才能收获真正的成长;只有坚定信念,才能赢得最终的胜利。努力奋斗,创造属于自己的辉煌!

在追求梦想的路上,每一步都不容易,但只要坚持不懈、永不放弃,即使前方是暗淡的未知之路,也能勇往直前。努力奋斗吧,把握当下,成就自己的辉煌人生!

生命里最大的财富不在于拥有多少,而是我们对生活的态度和追求。珍惜每分每秒,用心感受人生的美好与挑战,在奋斗中创造更多的价值,并让自己成为那个最棒的自己!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值