干货版!自动化测试框架断言设置,看这篇就够了...


前言

接口自动化测试中,有必要把接口返回的每个字段都进行断言吗?

无论是性能测试还是自动化测试中,要不要设置断言,为什么设置断言,断言的作用是什么,如何设置断言,都是新手容易踩坑犯错的地方。

1、什么是断言

设计测试用例的方法相信大家都深谙于心,最基本的要素有场景、操作步骤、输入和输出值,目的是验证测试用例对应的业务场景或功能是否如预期实现。

预期输出值可能有一个也可能有多个,在功能测试场景中,我们可以通过界面返回或渲染的结果,与产品需求描述和UI设计进行对比,如果符合需求描述和UI设计,则判定该测试用例执行通过。

这里的断言方式,可以理解为人工通过对比来判断测试结果的正确性。

在接口测试场景中,输入不同的请求参数有不同的返回报文,常见的做法是通过抓包或者观察response body中的返回值来判断程序返回结果是否否和预期。

这里的断言方式,可以人工检查也可以通过工具或者编写代码设置断言来对返回结果进行判断。

所谓断言,就是一种结果判断的手段,即判断结果是或否的方式。

2、为什么设置断言

无论是研发岗还是测试岗位,都要对自己的工作结果进行判断。

研发在本地开发完成后需要自测,判断自己编写的代码是否如需求描述一样实现。

测试同学需要对研发提交的代码程序进行各种验证,判断程序实现的功能是否符合需求描述和产品要求,以及是否满足流转到下一阶段(验收/发布)的标准。

用比较专业的话来说就是准入准出标准,而断言的作用就是尽可能通过机器(工具/代码)来进行判断,避免人工检查可能带来的遗漏等问题。

以接口测试为例,一个好的断言设计可以带来如下几点好处:

验证接口返回数据是否符合预期,判断功能实现是否正确。
自动化执行,提高测试效率和准确性,减少人为因素的影响。
当结果不符合预期时,可以帮助技术同学快速排查和定位问题。

3、一些设置断言误区

很多新手在刚开始进行接口测试或者自动化测试时,最容易犯的错误就是不设置断言,或断言的对象为HTTP状态码。

为什么不提倡和不建议大家用HTTP状态码来作为断言对象呢?
原因有如下几点:

首先,HTTP请求本身是无状态的,HTTP状态码只是表达了当前请求的处理情况,与业务正确与否无关。

比如出现404状态码时,被请求服务本身可能没问题,而是你的请求URL地址有误。

其次,HTTP状态码只代表了当前请求自身的情况。比如200状态码,代表请求是通畅的,服务端接收了你的请求并成功返回了响应数据,但不代表业务是正确的(下单失败的HTTP状态码也是200,但业务角度来说是失败的)。

4、如何设置测试断言

以文章开头的问题为例,从接口设计层面来看,设置断言至少需要验证如下几点:

数据结构验证:
验证接口请求返回的数据结构是否与接口定义一致。
服务端在收到请求后,会按照事先定义好的数据结构来解析并处理数据。如果输入的数据结构发生变化或者与事先定义的不一致,则会导致服务端抛出异常。

关键数值验证:
根据业务场景不同,可以有目的性的验证某些 key-value 的键值对结果是否符合预期,同时辅以查询数据库进行数据落库确认的方式来综合验证。

举例:假设业务场景是创建订单,如果创建成功,则响应报文中除了HTTP状态码需要返回200之外,还需要设置业务状态码(success status=0)。
同理,如果创建失败,则业务状态码success status=1。

要做到这点,有两个制约因素:
1)测试同学对业务的熟悉程度;
2)接口设计中需要事先对不同的业务场景结果定义不同的业务状态码。

其他类型验证:如返回数据必填非必填,URL访问权限校验(授权)等。

还有一些特殊情况,比如响应报文中的数据过多,则建议只对关键业务状态相关的key-value进行断言,其他数据则仅进行格式校验即可。

完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生如登山,重要的不是登顶的速度,而是沿途的坚持与成长。当你感到疲惫时,请记住:那些让你喘不过气的陡坡,正在塑造更强大的你。抬头看,山顶的风景值得你所有的汗水!

成功不是偶然的幸运,而是日复一日的积累。每一个微小的进步都在为未来铺路,每一次坚持都在改写命运的轨迹。别怕起点低,怕的是从未开始。你的努力,终将让梦想触手可及!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值