当前位置:网站首页>如何实现接口异常场景测试?测试方法探索与测试工具实现
如何实现接口异常场景测试?测试方法探索与测试工具实现
2022-06-22 12:50:00 【软件测试小仙女】
背景:随着前后端分离、微服务等技术的广泛应用,接口测试在整个测试过程中扮演的角色越来越重要,如何更加高效地把接口测好、测得更加充分就成了一个亟待解决的难题。
当前在对具体的某一接口进行测试时,普遍采取的方法是测试人员按照接口文档中的字段取值规则使用接口测试工具(例如Postman等)手工来回修改接口报文中的某一个字段值来进行测试。

这种方法对于单个或者是简单接口相对比较友好,然而往往一个系统中会包含有大量的接口、接口逻辑复杂、接口里边包含有非常多的字段,这就给接口测试的开展带来了很多问题,比如费时费力、工作量大、漏测某些测试场景等。
同时还由于项目工期紧张等原因,在接口测试过程中一般更多的是关注正常场景是否有实现,相较于异常场景的重视程度就不够,从而极易由此引发相关测试问题。
因此,为了减少此类情况发生,针对这一问题进行了探索和实践,总结了相关方法,并将其应用到了多个项目,起到了很好的效果。
方法探索
异常场景分析归纳
在对当前接口测试中异常场景测试的相关情形进行分析并总结归纳后,发现可以大致将其分为基本异常场景和特殊异常场景两大类,其中基本异常场景对具体接口中每个字段均适用,特殊异常场景只适用于特定的接口字段。
具体分类和示例如下图所示:

方法探索
结合上述异常场景的分析归纳以及当前测试接口测试的实际开展情形,对于接口异常场景的测试可以将相关的重复工作通过工具流程固化下来,通过工具自动对其进行测试以减少重复劳动,进一步提升测试效率。
接口异常场景测试工具技术实现

接口异常场景测试工具流程图
如以上流程图所示,技术实现整体思路为:首先是将待测接口的接口配置等相关信息作为输入,然后对其进行解析并匹配相关异常场景,其次是对匹配到的异常场景生成对应的接口测试用例以及测试脚本,最后是脚本执行生成相对应的测试结果。
应用实践
工具界面

实践示例
XX信息查询接口:

应用实践情况
目前该方法和工具已推广应用到多个项目多个接口,累计生成千余条异常场景测试用例,发现多个测试缺陷,平均将工作量缩短至原来人工测试时的三分之一,测试效率和测试质量提升效果明显。
总结
虽然目前已经在多个项目得到了应用,也取得了一定的效果,但是在应用实践过程中,也遇到了诸多问题,例如:目前支持的异常场景相对有限、接口文档的形式不统一(excel、word等)、各系统的接口格式多种多样,但目前仅支持http-json类型的接口测试等,后续将对这些问题逐一分析解决。
此外,在特殊异常场景方面还需要进行更加深入的探索,可以通过该方式将更多的测试经验和特殊异常场景固化下来纳入到工具流程中,再通过自动化生成和执行对应用例,从而节省时间、精力,减少测试人员在这方面的投入,将更多的精力投入到其他相对更加重要的测试中,进一步提升测试质量和效率。
最后:
可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。
这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
边栏推荐
- hw在即,你还不会看危险报文?
- VR panoramic shooting breaks the deadlock of traditional propaganda that wild geese pass without leaving traces
- 线下实体店结合VR全景,让虚拟购物更加真实
- 融云:让银行轻松上“云”
- Record the solution of failing to log in after the alicloud ECS instance is restarted (hands-on practice)
- Common writing methods and excellent examples of acknowledgments in graduation thesis writing
- 如何保护WordPress网站免受网络攻击?采取安全措施至关重要
- Run sqoop1.4.5 to report warning: does not exist! HCatalog jobs will fail.
- In 5g era, how to create an amazing live VR activity?
- "N'osez pas douter du Code, vous devez douter du Code" notez une analyse de délai de demande réseau
猜你喜欢

Simple integration of client go gin IX create

My suggestions on SAP ABAP transformation

天润云上市在即:VC大佬田溯宁大幅减持,预计将套现2.6亿港元

Kubernetes monitoring: grafana adds datasource and dashboard through automation
Redis+Caffeine两级缓存的实现

融云:让银行轻松上“云”

3dMax建模笔记(一):介绍3dMax和创建第一个模型Hello world

测试组的任务职责和测试的基本概念

JS高级程序设计第 4 版:迭代器的学习

Leetcode subsequence / substring problem
随机推荐
openGauss数据库源码解析系列文章—— 密态等值查询技术详解
Leetcode interval DP
3dMax建模笔记(一):介绍3dMax和创建第一个模型Hello world
【Nacos云原生】阅读源码第一步,本地启动Nacos
Technology practice | scene oriented audio and video call experience Optimization
leetcode-数学题
After several years of writing at CSDN, I published "the first book". Thank you!
Linux setting enables Oracle10g to start automatically
防火墙基础之策略部署
如何保护WordPress网站免受网络攻击?采取安全措施至关重要
HMS Core新闻行业解决方案:让技术加上人文的温度
坚持了 10 年的 9 个编程好习惯
能让Jellyfin直接挂载阿里云盘的aliyundrive-fuse
Go Web 编程入门:验证器
金融应用如何解决金额精度问题(以Quorum、golang为例)
If the programmer tells the truth during the interview
"Dare not doubt the code, but have to doubt the code" a network request timeout analysis
测试组的任务职责和测试的基本概念
Instanceinforeplicator class of Eureka (service registration auxiliary class)
History of hash index design