接口自动化测试实操【设置断言思路】

1 断言设置思路

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

在这里插入图片描述

下面分别解释一下图中的五种思路:

1) 响应码

对于http类接口,有时开发人员只是通过设置接口响应码来反应接口是否成功,这时我们的断言就需要检查接口响应码是否符合预期来判断用例是否执行成功。

2) 验证关键字段值

一般接口中会设有专门的字段来反馈接口成功与否的信息,比如:msg字段,经常好多接口通过该字段反应后台的处理情况,如果成功会返回成功信息,失败会返回失败原因。这样我们测试时可以直接校验该字段值来判断用例是否执行成功。

3) 正则匹配

当一个接口返回内容比较多时,但有一定规则可寻,我们可以借助正则表达式来校验检查。

4) 数据库匹配核对

要对一个查询类接口的返回数据进行验证,我们可以采用编写SQL,到数据查询结果,然后将数据库结果与接口返回结果进行核对检查,这样就能比较准确的验证接口返回数据的正确性。

5) 相关接口辅助验证

举个例子,比如测试一个删除接口,删除了一条记录后,如何验证接口真的把记录删除成功了,可以再调用查询接口,检查被删除的记录是否真的查询不到了,那就说明删除真的成功了。

2 断言设置实战演示

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

下图展示一下eolink平台的自定义脚本功能:

在这里插入图片描述

在这里插入图片描述

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发生变化时,您可以一键将文档内容同步到测试步骤中,减轻维护用例的成本。

在这里插入图片描述

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

平台支持拖拉方式进行复杂多接口链路的场景编排,减轻脚本维护工作量。

在这里插入图片描述

3)对数据库进行操作

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

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

在这里插入图片描述

在这里插入图片描述

4)定时自动测试

该平台也支持自动化用例定时执行,减少人为的干预,进一步降低执行成本。

在这里插入图片描述

在这里插入图片描述

综合来看,eolink平台功能十分强大,除了能像Jmeter一样灵活实现各类接口场景的自动化测试,还有丰富的API管理、API监控、API市场功能,帮助整个研发团队高效实现API全流程的管控,可以说是非常强大易用的一款API管理测试平台。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

相关推荐
起名字真南9 分钟前
【OJ题解】C++实现字符串大数相乘:无BigInteger库的字符串乘积解决方案
开发语言·c++·leetcode
tyler_download21 分钟前
golang 实现比特币内核:实现基于椭圆曲线的数字签名和验证
开发语言·数据库·golang
小小小~21 分钟前
qt5将程序打包并使用
开发语言·qt
hlsd#21 分钟前
go mod 依赖管理
开发语言·后端·golang
哇咔咔哇咔22 分钟前
【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
python·conda·virtualenv
小春学渗透23 分钟前
Day107:代码审计-PHP模型开发篇&MVC层&RCE执行&文件对比法&1day分析&0day验证
开发语言·安全·web安全·php·mvc
杜杜的man26 分钟前
【go从零单排】迭代器(Iterators)
开发语言·算法·golang
亦世凡华、26 分钟前
【启程Golang之旅】从零开始构建可扩展的微服务架构
开发语言·经验分享·后端·golang
测试界的酸菜鱼40 分钟前
C# NUnit 框架:高效使用指南
开发语言·c#·log4j
GDAL40 分钟前
lua入门教程 :模块和包
开发语言·junit·lua