网站首页 > 技术文章 正文
背景:随着前后端分离、微服务等技术的广泛应用,接口测试在整个测试过程中扮演的角色越来越重要,如何更加高效地把接口测好、测得更加充分就成了一个亟待解决的难题。
当前在对具体的某一接口进行测试时,普遍采取的方法是测试人员按照接口文档中的字段取值规则使用接口测试工具(例如Postman等)手工来回修改接口报文中的某一个字段值来进行测试。
这种方法对于单个或者是简单接口相对比较友好,然而往往一个系统中会包含有大量的接口、接口逻辑复杂、接口里边包含有非常多的字段,这就给接口测试的开展带来了很多问题,比如费时费力、工作量大、漏测某些测试场景等。
同时还由于项目工期紧张等原因,在接口测试过程中一般更多的是关注正常场景是否有实现,相较于异常场景的重视程度就不够,从而极易由此引发相关测试问题。
因此,为了减少此类情况发生,针对这一问题进行了探索和实践,总结了相关方法,并将其应用到了多个项目,起到了很好的效果。
方法探索
异常场景分析归纳
在对当前接口测试中异常场景测试的相关情形进行分析并总结归纳后,发现可以大致将其分为基本异常场景和特殊异常场景两大类,其中基本异常场景对具体接口中每个字段均适用,特殊异常场景只适用于特定的接口字段。
具体分类和示例如下图所示:
方法探索
结合上述异常场景的分析归纳以及当前测试接口测试的实际开展情形,对于接口异常场景的测试可以将相关的重复工作通过工具流程固化下来,通过工具自动对其进行测试以减少重复劳动,进一步提升测试效率。
接口异常场景测试工具技术实现
接口异常场景测试工具流程图
如以上流程图所示,技术实现整体思路为:首先是将待测接口的接口配置等相关信息作为输入,然后对其进行解析并匹配相关异常场景,其次是对匹配到的异常场景生成对应的接口测试用例以及测试脚本,最后是脚本执行生成相对应的测试结果。
应用实践
工具界面
实践示例
XX信息查询接口:
应用实践情况
目前该方法和工具已推广应用到多个项目多个接口,累计生成千余条异常场景测试用例,发现多个测试缺陷,平均将工作量缩短至原来人工测试时的三分之一,测试效率和测试质量提升效果明显。
总结
虽然目前已经在多个项目得到了应用,也取得了一定的效果,但是在应用实践过程中,也遇到了诸多问题,例如:目前支持的异常场景相对有限、接口文档的形式不统一(excel、word等)、各系统的接口格式多种多样,但目前仅支持http-json类型的接口测试等,后续将对这些问题逐一分析解决。
此外,在特殊异常场景方面还需要进行更加深入的探索,可以通过该方式将更多的测试经验和特殊异常场景固化下来纳入到工具流程中,再通过自动化生成和执行对应用例,从而节省时间、精力,减少测试人员在这方面的投入,将更多的精力投入到其他相对更加重要的测试中,进一步提升测试质量和效率。
最后:
1)关注+私信回复:“测试”,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。
2)关注+私信回复:"入群" 就可以邀请你进入软件测试群学习交流~~
- 上一篇: 接口篇—IIC硬件信号测试规范
- 下一篇: 初学后端,如何做好表结构设计?
猜你喜欢
- 2025-01-02 接口篇—IIC硬件信号测试规范
- 2025-01-02 如何设计接口测试用例?(文末送接口测试用例模板)
- 2025-01-02 终于有人把银行系统接口测试说明白了!【附实例】
- 2025-01-02 零基础学习接口测试——什么是接口?
- 2025-01-02 面试前这些接口测试知识要点,终于梳理好了,拿走不谢
- 2025-01-02 使用jmeter进行接口性能测试入门
- 2025-01-02 接口测试用例编写和测试关注点
- 2025-01-02 接口测试的基础流程和用例设计方法你知道吗?
- 2025-01-02 公司计划用接口自动化测试同事给我们科普了主流接口测试框架对比
- 2025-01-02 原来大牛们口中的接口Mock测试是长这样的,今天我终于搞懂了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)