接口测试断言

简介: 接口测试断言

没有质量保障的敏捷,跑得越快,死得也就越快。同样的,没有断言的接口自动化测试,写得越多,危险程度也就越高。在追求测试覆盖率的同时,我们也需要关注用例的质量,特别是断言的合理性。

01

一个好的断言设计,可以给我们带来以下好处:


验证接口响应是否符合预期:接口测试的主要目的是验证接口的功能是否符合预期,而断言是验证测试结果是否符合预期的关键步骤。通过断言验证接口返回的数据是否包含预期的字段和值,可以有效地验证接口的功能是否正确。

提高测试效率和准确性:断言可以自动化地验证测试结果,避免了手动验证测试结果的繁琐过程,同时也减少了人为因素对测试结果的影响,提高了测试效率和准确性。

便于问题定位和排查:当测试结果不符合预期时,断言可以帮助测试人员快速定位问题,找到导致测试结果不符合预期的原因,便于排查和修复问题。

02

为什么HTTP状态码替代不了断言

 

因为HTTP请求本身就是无状态的,HTTP状态码只是表达了当前请求的处理情况,与业务的正确与否无关。例如,400错误,并不是服务有问题,而是你的请求参数有错(比如应该传一个Number类型的参数,你却传了一个字符串)。

 

同理,HTTP返回200,只能表示这个请求是成功的,但是业务可能是失败的。就好比快速投送,其实也是个无状态事件(不影响下一次的投送),它只是把快递送到你手中了(返回200),但是里面的东西是否是你想要的(业务需要的内容),与快递员无关,需要你自己确认。

03

从接口层面看,我们至少需要验证两点:

 

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

 

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


除了以上两点外,还有一些额外的验证点在需要的时候可以进行,如涉及其他地方的数据流转、返回的URL是否可被访问,返回的数据是否真的是必要的(这点很重要,过多的返回会导致很多意外的问题)等等。根据实际情况进行补充。  


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

04

案例1:如下图所示,针对查询类的接口,返回结果不应该只验证总数(因为总数会经常变,数据总会有增删),而是应该根据查询条件,在返回的列表信息中,针对关键字段做匹配验证。


 

案例2:查询类接口,给定了查询条件,返回的查询结果为空,理论上应该是要置为失败的(要么替换新的有结果返回的查询数据)。但是因为断言设置得不合理,会导致无法确认是查询结果有问题,还是查询无数据。

 

 

案例3:针对提交类的接口,除了验证返回状态外,还需要验证返回数据中的关键信息是否与填写的一致,这样就相当于做了一次数据查询,可以确认业务是否真正正确成功。有些接口如果没有返回新建信息,那就需要手动去数据库中查一次,确保业务的正确性。


 

案例4:等价的断言设置,如下图,success如果为true,那么通常情况下,code也会为0,不太可能出现不匹配的情况,所以,这里其实只要断言一个就可以了。


05

自动化测试想要真正产生价值,需要我们认真去对待它。让他运行的结果真正地被信任,进而释放测试劳动力。除了断言,接口用例,也需要被精心设计,而不是简单的接口堆砌,这个下次再做分享。


相关文章
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
23 2
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
114 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
77 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
微信公众号接口测试实战指南
微信公众号接口测试是确保系统稳定性和功能完整性的重要环节。本文详细介绍了测试全流程,包括准备、工具选择(如Postman、JMeter)、用例设计与执行,以及常见问题的解决方法。通过全面测试,可以提前发现潜在问题,优化用户体验,确保公众号上线后稳定运行。内容涵盖基础接口、高级接口、微信支付和数据统计接口的测试,强调了功能验证、性能优化、安全保护及用户体验的重要性。未来,随着微信生态的发展,接口测试将面临更多挑战和机遇,如小程序融合、AI应用和国际化拓展。
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
214 11

热门文章

最新文章