接口自动化测试实践指导(下):接口自动化测试断言设置思路

简介: 接口自动化测试实践指导(下):接口自动化测试断言设置思路

作者石臻臻, CSDN博客之星Top5Kafka Contributornacos Contributor华为云 MVP ,腾讯云TVP, 滴滴Kafka技术专家 KnowStreaming


在前两篇文章中详细给小伙伴们讲解了一下接口自动化需要做哪些准备工作及接口测试场景有哪些,本篇文章是最后一篇,主要分享一下接口自动化测试断言设置思路。如果没有好的断言,自动化用例效果将大大打折扣,甚至是无用的,前期的很多工作都因此浪费。这里我继续结合自身经验,帮助大家梳理一下,希望有所帮助和提升。

可以看看这个 : https://www.eolink.com/

PS:
接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
接口自动化测试实践指导(中):接口测试场景有哪些

1 断言设置思路

这里总结了我在项目中常用的5种断言方式,基本可能满足90%以上的断言场景,具体参见如下脑图:

在这里插入图片描述
下面分别解释一下图中的五种思路:

1) 响应码
对于http类接口,有时开发人员只是通过设置接口响应码来反应接口是否成功,这时我们的断言就需要检查接口响应码是否符合预期来判断用例是否执行成功。
2) 验证关键字段值
一般接口中会设有专门的字段来反馈接口成功与否的信息,比如:msg字段,经常好多接口通过该字段反应后台的处理情况,如果成功会返回成功信息,失败会返回失败原因。这样我们测试时可以直接校验该字段值来判断用例是否执行成功。
3) 正则匹配
当一个接口返回内容比较多时,但有一定规则可寻,我们可以借助正则表达式来校验检查。
4) 数据库匹配核对
要对一个查询类接口的返回数据进行验证,我们可以采用编写SQL,到数据查询结果,然后将数据库结果与接口返回结果进行核对检查,这样就能比较准确的验证接口返回数据的正确性。
5) 相关接口辅助验证
举个例子,比如测试一个删除接口,删除了一条记录后,如何验证接口真的把记录删除成功了,可以再调用查询接口,检查被删除的记录是否真的查询不到了,那就说明删除真的成功了。

2 断言设置实战演示

基于上面的断言思路,接下来,我通过实际例子给大家做一下展示,这里通过两种平台工具来展示,一种是开源好用的Jmeter;另一种是之前给大家推荐的eolink平台,eolink平台因为支持自定义脚本,且平台提供了很多内置函数,也可以像Jmeter一样灵活实现上述5种断言思路。
下图展示一下eolink平台的自定义脚本功能:

在这里插入图片描述
在这里插入图片描述
更多内置函数可以参考:https://help.eolink.com/#/tutorial/?groupID=c-806&productID=23

2.1 响应码断言展示

如果一个接口需要通过接口请求的响应码来断言,判断是否达到预期结果,Jmeter工具的实现如下:

在这里插入图片描述
在这里插入图片描述
说明:

该用例会返回400的错误码,断言设置校验响应码是否为400,如果等于400表示用例执行成功,否则失败。

再展示一下用eolink的实现效果

在这里插入图片描述

2.2 验证关键字段值

如果一个接口需要通过响应结果中出现某个关键词来判断是否达到预期结果,可以采用验证关键字段值的断言方式,用Jmeter工具实现如下:

在这里插入图片描述

说明:
该用例通过检查接口返回字段msg的值是否为“您没有登录,请重新登录”来判断用例是否执行成功。

再展示一下用eolink的实现效果:

在这里插入图片描述

2.3 正则匹配

如果一个接口返回的响应结果是不断变化的,但结果符合某个预期的规则,这时可以采用正则匹配的方式来断言,用Jmeter工具实现如下:

在这里插入图片描述
说明:
通过正则匹配,除了验证某个符合预期规则的字段值,可以用于匹配检查接口返回样式,匹配成功了,说明用例执行通过。

再展示一下用eolink的实现效果:

在这里插入图片描述

2.4 数据库匹配核对

针对一个查询类接口,如果想详细验证返回结果的各个字段,可以采用数据库匹配核对方式来断言,用Jmeter工具实现如下:

在这里插入图片描述
在这里插入图片描述

说明:
对于一个查询类用例,通过查询数据库,然后将接口返回结果与数据库返回结果进行对比,对比成功说明用例执行通过。

再展示一下用eolink的实现效果:

在这里插入图片描述

执行结果:
在这里插入图片描述

2.5 相关接口辅助验证

很多接口的验证需要依赖其他相关接口来判断,实现起来会稍微复杂些,但断言效果非常好,先用Jmeter工具给大家展示一下:

在这里插入图片描述

说明:

对于部署接口是否成功的验证,我这边通过“查看部署日志”接口来辅助验证,当部署日志接口中获取到部署成功日志打印后,就说明用例执行通过。

再展示一下用eolink的实现效果:

1)有两种方式,一种步骤中添加相关接口,提取相应内容,后续做判断。

在这里插入图片描述

在这里插入图片描述

2)再一种就通过JS脚本来维护多个接口,并处理接口的响应结果,添加断言来实现。

在这里插入图片描述

eolink平台有着非常丰富易用的功能,帮助项目团队更好的对API接口进行管理和测试,最后,再补充介绍一下该平台对于API接口测试方面的某系高级功能:

1)与API文档关联与自动同步

在测试用例中,绑定API文档之后,当API发生变化时,您可以一键将文档内容同步到测试步骤中,减轻维护用例的成本。想了解更多,可以参见:https://help.eolink.com/#/tutorial/?groupID=c-752&productID=23

在这里插入图片描述

2)0代码,拖拉拽完成测试流程编排

平台支持拖拉方式进行复杂多接口链路的场景编排,减轻脚本维护工作量。更多可参见:https://help.eolink.com/#/tutorial/?groupID=c-751&productID=23

在这里插入图片描述

3)对数据库进行操作
平台也支持在自动化用例中添加对数据库的操作,常用于以下场景:

  1. 测试前对数据库插入测试数据。
  2. 清除脏数据。
  3. 查询 API 操作是否对数据库生效。

…更多可参见:https://help.eolink.com/#/tutorial/?groupID=c-748&productID=23

在这里插入图片描述

在这里插入图片描述

4)定时自动测试
该平台也支持自动化用例定时执行,减少人为的干预,进一步降低执行成本。想了解更多,可以参见:https://help.eolink.com/#/tutorial/?groupID=c-787&productID=23

在这里插入图片描述

在这里插入图片描述

综合来看,eolink平台功能十分强大,除了能像Jmeter一样灵活实现各类接口场景的自动化测试,还有丰富的API管理、API监控、API市场功能,帮助整个研发团队高效实现API全流程的管控,可以说是非常强大易用的一款API管理测试平台。
至此,接口自动化测试实践指导三篇文章全部完结,希望测试小伙伴们看后能有所收获,后续要多多实践,才能很好提升自动化测试能力。

可以看看这个 : https://www.eolink.com/

相关文章
|
29天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
45 4
|
1月前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
|
6天前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的QPSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的QPSK调制解调系统的硬件实现与仿真效果。系统包含测试平台(testbench)、高斯信道模块、误码率统计模块,支持不同SNR设置,并增加了ILA在线数据采集和VIO在线SNR设置功能。通过硬件测试验证了系统在不同信噪比下的性能,提供了详细的模块原理及Verilog代码示例。开发板使用说明和移植方法也一并给出,确保用户能顺利在不同平台上复现该系统。
49 15
|
16天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
66 11
|
14天前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的2FSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的2FSK调制解调系统,包含高斯信道、误码率统计模块及testbench。系统增加了ILA在线数据采集和VIO在线SNR设置模块,支持不同SNR下的硬件测试,并提供操作视频指导。理论部分涵盖频移键控(FSK)原理,包括相位连续与不连续FSK信号的特点及功率谱密度特性。Verilog代码实现了FSK调制解调的核心功能,支持在不同开发板上移植。硬件测试结果展示了不同SNR下的性能表现。
58 6
|
29天前
|
测试技术 Python
探索软件测试的深度与广度:从理论到实践
在数字化时代,软件已成为我们生活中不可或缺的一部分。随着技术的不断进步和用户需求的多样化,确保软件质量变得尤为重要。本文将深入浅出地介绍软件测试的核心概念、类型及其在软件开发生命周期中的重要性。我们将通过实际案例,展示如何实施有效的测试策略,并探讨自动化测试的未来趋势,旨在为读者提供一套完整的软件测试知识体系,帮助提升软件质量和开发效率。
|
30天前
|
测试技术 Python
探索软件测试的奥秘:从理论到实践
在软件开发的宇宙中,软件测试犹如一颗璀璨的星辰,指引着质量的方向。本文将带你穿梭于软件测试的理论与实践之间,揭示其内在的逻辑和魅力。从测试的重要性出发,我们将探讨不同类型的测试方法,并通过实际案例分析,深入理解测试用例的设计和应用。最后,我们将通过一个代码示例,展示如何将理论知识转化为实际操作,确保软件质量的同时,也提升你的测试技能。让我们一起踏上这段探索之旅,发现软件测试的无限可能。
|
1月前
|
测试技术
探索软件测试的奥秘:从理论到实践
本文深入探讨了软件测试的基本概念、重要性、主要类型以及实施策略。通过分析不同测试阶段和相应的测试方法,文章旨在为读者提供一套完整的软件测试知识体系,帮助他们更好地理解和应用测试技术,确保软件产品的质量和可靠性。
64 4
|
28天前
|
监控 搜索推荐 测试技术
电商API的测试与用途:深度解析与实践
在电子商务蓬勃发展的今天,电商API成为连接电商平台、商家、消费者和第三方开发者的重要桥梁。本文深入探讨了电商API的核心功能,包括订单管理、商品管理、用户管理、支付管理和物流管理,并介绍了有效的测试技巧,如理解API文档、设计测试用例、搭建测试环境、自动化测试、压力测试、安全性测试等。文章还详细阐述了电商API的多样化用途,如商品信息获取、订单管理自动化、用户数据管理、库存同步、物流跟踪、支付处理、促销活动管理、评价管理、数据报告和分析、扩展平台功能及跨境电商等,旨在为开发者和电商平台提供有益的参考。
35 0
|
3月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
70 4