当前位置:网站首页>如何设计好接口测试用例?教你几个小技巧,轻松稿定
如何设计好接口测试用例?教你几个小技巧,轻松稿定
2022-07-06 18:48:00 【小梧敲代码】
接口测试是项目测试的一部分,正如其名,它测试的主要对象是接口,是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点。测试的重点是检查数据交互、传递、和控制管理过程以及系统间的相互依赖关系等。
接口测试一条请求,不同参数组合,可能就变成几十条用例,一不小心写几个接口,用例数就上百了,再没完没了的写下去就恶心了。怎么办?
在设计测试用例时候我们可以根据项目业务功能情况进行主次分析后,划分优先级,先正向思路,再反向,进行归类划分,最后有时间再考虑是否要编写那些优先级比较低的用例,必要的时候可以画下思维导图,思路清晰了再进行编写。
在执行的时候也按优先级情况进行执行,整个层次就分明了,用例的管理及维护也变得轻松起来。
1.测试用例的等级划分
下面是我在实际测试过程中总结的等级顺序:
1) 主体业务功能接口正常典型值用例的优先级为1(用于冒烟测试的用例)
2) 各模块主功能的正常典型值用例的优先级为2
3) 除了的正常典型值用例之外的正用例及所有异常用例的优先级为3
4) 可用性测试以及入参默认值以及开发做了限制处理的参数类型、开发自测容易发现的错误等测试的优先级为5,最低优先级
当然以上写下来你会发现还是好多啊,这时候应该思考下你设计的这些部分用例是否是真的有实际意义?有没有考虑到实际用户使用场景、需要?是否有可能会出现这种场景?程序员对于这些字段有没有做了限制,他们是不是保证不会犯这样那样的错误,如果他们已经做了控制保证不会出现你设计的哪几种异常情况,你还何必多此一举?四不四?
这时候你可能说,不对啊,测试的时候,我的上级就跟我说要根据测试方法组合一下,各种情况都测一下,你那是UI层测试吧。接口测试用例的设计不是业务层,不能纯根据数学的排列组合,还要根据实际情况做一下减法。
2.测试用例的筛选
So…我们需要对用例做一次筛选,接口测试属于更底层一点的测试,当然所有手工测试方法都用的上,但接口参数数据需对每个参数根据测试接口的实际的功能进行分析,需要符合业务逻辑的情况下进行逻辑组合排列,有些情况,本身通过代码的设计,做了些限制,错误是不会出现在UI层滴
根据测试方法以及上一篇博客写的关于数据设计写出用例,做一下如下筛选:
1) 剔除不重要的接口
2) 异常系用例根据是接口本身兼容异常情况还是有前端控制进行去留
3) 根据接口文档,实际业务情况,场景,接口要实现的功能进行选择
4) 开发协助再筛选一遍
3.测试原则
1) 基础配置,如域名,环境配置等,单独文件配置,方便不同环境测试,脚本维护
2) 明确接口实现什么样的功能,实际需要什么样的功能。是否一致
3) 接口测试数据太多,用数据驱动模式更有层次,且易维护
4) 要众多用例中选出冒烟测试用例及可用于性能测试的用例
5) 先单接口测试,在多接口业务测试
6) 测试完成后,需要清理脏数据
如何设计接口测试用例?
首先,明确出发点。和所有的测试一样,接口测试出发点是你要证明所测的程序是错误的。以这个出发点为导向,你的设计行为就会尽量朝这个方向发展,更易发现问题,不会出现大方向的偏差。
其次,选择好测试对象。对于一个系统做接口测试选择好的测试对象是接口测试关键。一个系统有无数的接口,每个接口如果分别测试,那将是很痛苦的一件事情,不光繁琐浪费,而且任何一个内部接口的变动,都将导致我们用例的不可用。
这里推荐把整个系统作为一个整体,选择整个系统提供给外部使用、交互的最外层接口作为你的测试对象,以此为测试对象的用例将有很好的健壮性,并且更高效。
另外,根据数据的流向,又可将这些最外层的接口分为两类:一类是数据进入系统的接口;一类是数据流出系统的接口。
进入系统的接口实际是我们用例的执行调用的接口。可通过变化参数对这些接口进行调用,模拟外部的使用;而流出的接口则是我们用例真正该验证的点。
数据从哪里流出,流出时的状态如何,此时系统又是什么状态都是我们所应该验证的。
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
点击文末小卡片领取 |
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
边栏推荐
- 人脸识别应用解析
- 3D laser slam: time synchronization of livox lidar hardware
- MetaForce原力元宇宙开发搭建丨佛萨奇2.0系统开发
- The cities research center of New York University recruits master of science and postdoctoral students
- Chang'an chain learning notes - certificate model of certificate research
- [C # notes] use file stream to copy files
- The mega version model of dall-e MINI has been released and is open for download
- The empirical asset pricing package (EAP) can be installed through pypi
- AWS学习笔记(一)
- Increase 900w+ playback in 1 month! Summarize 2 new trends of top flow qiafan in station B
猜你喜欢
Ali yunyili: how does yunyuansheng solve the problem of reducing costs and improving efficiency?
【服务器数据恢复】raid损坏导致戴尔某型号服务器崩溃的数据恢复案例
Summer Challenge database Xueba notes (Part 2)~
#夏日挑战赛#数据库学霸笔记(下)~
argo workflows源码解析
处理streamlit库上传的图片文件
如何从0到1构建32Core树莓派集群
Argo workflows source code analysis
B站6月榜单丨飞瓜数据UP主成长排行榜(哔哩哔哩平台)发布!
豆瓣平均 9.x,分布式领域的 5 本神书!
随机推荐
Tiflash source code reading (IV) design and implementation analysis of tiflash DDL module
Web3's need for law
Lumion 11.0软件安装包下载及安装教程
C#/VB. Net to delete watermarks in word documents
[paper reading | deep reading] rolne: improving the quality of network embedding with structural role proximity
处理streamlit库上传的图片文件
1500万员工轻松管理,云原生数据库GaussDB让HR办公更高效
Recent applet development records
New generation cloud native message queue (I)
The cities research center of New York University recruits master of science and postdoctoral students
leetcode:5. Longest palindrome substring [DP + holding the tail of timeout]
postgresql之integerset
The boss is quarantined
投资的再思考
leetcode:736. LISP syntax parsing [flowery + stack + status enumaotu + slots]
A new path for enterprise mid Platform Construction -- low code platform
Sensor: introduction of soil moisture sensor (xh-m214) and STM32 drive code
云原生混部最后一道防线:节点水位线设计
压缩 js 代码就用 terser
建議收藏!!Flutter狀態管理插件哪家强?請看島上碼農的排行榜!