首页 > 其他分享 >接口自动化测试实践指导(中):接口测试场景有哪些

接口自动化测试实践指导(中):接口测试场景有哪些

时间:2024-01-22 11:56:20浏览次数:26  
标签:场景 检查 接口 用例 API 测试

接口自动化测试实践指导(中):接口测试场景有哪些

1 接口测试场景梳理

1.1 设计思路

在接口测试中,很大程度上,我们的测试质量依赖于接口测试场景的设计,而接口的测试场景和传统的功能测试场景又有所不同,不少测试同学一时无法很好的转换,一上来进行接口测试思路上会比较乱,这里呢给大家梳理一下接口的常用测试场景,并进行了分类,感兴趣的同学建议反复多看几遍,并多思考一下。

在这里插入图片描述

注:性能角度和安全角度的实际测试要比功能角度测试复杂的多,本篇重点讲解功能角度测试,后续再写专题文章来详细讲解接口的性能和安全测试如何进行。

1.2 功能角度讲解

接口测试的功能角度划分,依据侧重的角度不同,可以有多种划分方法,目前我实际测试工作中主要使用的测试场景可以划分为五类:基础检查、正常多角度、异常多角度、必录项检查、边界值检查。
大家注意这个顺序安排:基础检查->正常多角度->异常多角度->必录项检查->边界值检查;优先级是依次降低的。实际在进行接口测试时,建议按照这个优先级顺序进行测试用例设计,不一定所有接口的测试都要设计这么全面,需要综合考虑时间成本、接口的重要性等多重因素来决定。
下面分别解说一下功能角度下的每个场景分类,利于大家理解清楚:
1) 基础检查
该角度主要目的是对接口进行通过性验证,通过输入有效入参,检查接口返回正常,可通过返回状态码或关键字段来进行判断。但内容是不是返回正确,不在该角度检查范围内。
2) 正常多角度
该角度主要验证多种有效入参组合,检查接口均能返回符合预期的正确数据。类似于普通的功能测试,从黑盒角度考虑,利用等价类的思想,划分接口各个入参可能的正常场景组合值,并检查接口返回结果的正确性,是否符合我们入参设置的预期结果。
3) 异常多角度
该角度主要验证多种无效入参组合,检查接口均返回符合预期的报错信息。需要注意的是,该角度更多的是考虑业务角度的异常场景,而非针对某个入参的异常数据测试。针对每个入参的异常数据测试将更多的放到边界值检查场景中。
4) 必录项检查
该角度检查比较明确,就是依据接口文档,检查各个必录的入参是否真的被设为了必录项,在场景设计上,需要测试当只录入必录项入参时,接口应该能够返回处理成功的信息,否则要么是文档写的有问题,要么是接口代码逻辑有问题。
5) 边界值检查
该角度主要从入参要素级角度进行检查,针对接口的每个入参进行特殊字符检查、长度边界值检查等。这个角度的检查优先级最低,原因是一般系统前端都会有控制,这种非法的数据一般是无法正常传递给后端,但如果为了接口更好的健壮性,前端虽然进行了控制,但后端接口也加一下校验控制,安全性和健壮性上会更高。当然实际项目中,后端开发人员往往因为这块处理比较费时,往往没有做到太全面的控制,针对这种情况,我们测试可以依据具体系统使用场景,综合评估一下风险,如果有比较大的风险,还是要具体要求开发人员完善一下后台校验。

2 用例设计实战演示

对于接口用例的维护,这里呢推荐两款工具,一款是单兵神器Jmeter,一款是可以免费且非常好用的API接口协作平台Eolink,该平台不仅支持API接口的协作开发,更有丰富的接口测试功能,支持对接口的测试。Eolink对接口的测试用例维护样例如下:

在这里插入图片描述

在这里插入图片描述

下图为用Jmeter维护的一组对创建应用接口的接口测试用例,后续会以此为例子给大家解说一下上面章节所说的接口测试场景。

在这里插入图片描述

说明:上图展示的是对“创建应用接口”编写的测试用例,该接口的用例是完全按照5个场景分类来设计测试用例,并且在设计用例时,按照每个场景分类优先级依次进行用例设计,这样做的好处是整个设计思路比较清晰明了,最大限度避免遗漏某些场景用例编写。

2.1 基础检查类用例展示

在这里插入图片描述

说明:该用例入参随机设置一套可使接口返回正常的一套参数即可。

在这里插入图片描述

说明:断言的设置也比较简单,检查接口返回某个关键字段即认为成功

2.2 正常多角度用例展示

在这里插入图片描述

说明:该用例主要设置检查各种不同构建类型的应用能否创建成功。

2.3 异常多角度用例展示

在这里插入图片描述

说明:该用例是来检查当language字段设置了不存在的值,检查接口返回失败(这类错误数据,接口会返回非200错误码)

2.4 必输检查用例展示

在这里插入图片描述

说明:该用例是来检查当language字段设置为null后,检查接口返回预期失败信息,失败信息为:“必须为你的应用选择他的开发语言”

https://www.eolink.com/

2.5 边界值检查用例展示

在这里插入图片描述

说明:该用例是来检查tag字段多种不合法入参,检查接口返回预期失败信息,失败信息为:“项目名称只能包含字母、数字、中划线,且不能以中划线为开头和结尾。长度2-50个字符”

最后,再给小伙伴们介绍一下Eolink在测试用例方面的神奇特性:支持自动生成测试用例的能力。该能力可以智能生成多种场景的测试用例,并实现快速生成各种正常类型,异常类型,边界值,必填值的用例。有兴趣的小伙伴建议去官网详细了解一下:https://www.eolink.com/

在这里插入图片描述
另外该平台还有着丰富易用的测试功能,帮助项目团队更好的对API接口进行管理和测试,这里简单介绍一下几个好用的功能:
1)支持在线、本地、客户端进行测试
eolink除了常规支持服务器端发起测试,还支持客户端(本地)、插件(本地)发起测试,满足多种不同场景的测试需求,想了解更多,可以参见:https://help.eolink.com/#/tutorial/?groupID=c-628&productID=13
客户端(本地):

在这里插入图片描述

服务器测试(在线):

在这里插入图片描述

插件(本地):

在这里插入图片描述

2)一键进行回归/冒烟测试
在以往的协作方式中,测试人员工作总是排在最后进行,无法参与项目讨论,无法进行快速大范围回归测试,甚至无法按时完成测试任务,导致项目延期或带着忐忑上线。在 API研发管理平台 中,由于协作是基于 API 文档进行的,当后端开发人员将 API 文档写好之后,测试人员就可以马上介入,在 API 文档的基础上编写测试用例,让测试工作前移。当 API 开发完成之后,测试人员可以一键将 API 的测试用例全部测完,并且得到详细的测试报告。后端开发只需要看到测试结果就能够知道自己的 API 是否满足测试需求,如果有异常则可针对性改进。想了解更多,可以参见:https://help.eolink.com/#/tutorial/?groupID=c-469&productID=13

在这里插入图片描述

3)丰富详细的测试报告
该平台也提供了丰富详细的测试报告,方便查看和分析测试结果,想了解更多,可以参见:https://help.eolink.com/#/tutorial/?groupID=c-469&productID=13

在这里插入图片描述

预告一下,下篇文章将给大家介绍一下接口自动化测试断言设置思路,感兴趣的小伙伴,建议持续关注一下。
https://www.eolink.com/

 

标签:场景,检查,接口,用例,API,测试
From: https://www.cnblogs.com/atu168/p/17979750

相关文章

  • 【知识点】 端到端场景文本检测与识别中 Word Spotting 和 End-to-End 评价指标的区别
    问题缘起在ICDAR-2015的场景文本端到端检测与识别任务中,总会出现2个不同的检测指标,其数值一般有微小的区别(0.5个点以内)。一直搞不懂这两个指标的区别在哪,最近看到了一篇论文[1],里面给出了这两个指标的解释。 解答直接贴图: 可以看到这里解释得很清楚。在端到端任务中,......
  • 【软件测试】Jmeter性能测试(性能测试,Jmeter使用与结果分析)
    【软件测试】Jmeter性能测试(性能测试,Jmeter使用与结果分析)前言性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是优化架构设计中重要的依据。本文简单讲述了性能测试以及性能测试工具Jmeter。另......
  • JMeter性能测试,完整入门篇
    JMeter性能测试,完整入门篇ApacheJMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。本文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整性......
  • JMeter性能测试,完整入门篇:性能测试操作步骤
    JMeter性能测试,完整入门篇:性能测试操作步骤1. Jmeter简介Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。本文为JMeter性能测试完整入门篇......
  • selenium自动化测试实战
    selenium自动化测试实战   一、Selenium介绍Selenium是什么?一句话,自动化测试工具。它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面式浏览器,如果你在这些浏览器里面安装一个Selenium的插件,那么便可以方便地实现Web界面的测试。Selenium2,又名WebDriver,它的......
  • 自动化测试——selenium(完结篇)
    自动化测试——selenium(完结篇) 一、元素操作方法方法:1、.send_keys()#输入方法2、.click()#点击方法3、.clear()#清空方法 1234注意:在输入方法之前一定要清空操作!!#导包fromtimeimportsleepfromseleniumimportwebdriver#实例化浏览器......
  • SAN存储简单测试
     SNA存储简单测试一、挂载后测试写步骤命令1,查看磁盘#lsblk#lsscsi#fdisk-l2,分区#fdisk/dev/sdb3,格式化文件系统#mkfs.xfs/dev/sdb14,挂载#mount/dev/sdb1/data/5,查看挂载情况#df-h6,测试写]#ddif=/dev/zer......
  • datax编译以及测试流程
    简单记录一下1、编译mvn-Ucleanpackageassembly:assembly'-Dmaven.test.skip=true'   缺少<!--<dependency>--><!--<groupId>org.pentaho</groupId>--><!--<artifactId>pentaho-aggdesigne......
  • 抽象类与接口
    一.抽象类与接口的定义1.抽象类:如果一个类中有被abstract修饰的方法,那么该类也要被abstract修饰,并且抽象类的抽象方法需要子类继承抽象类通过重写抽象方法实现,那么该类就是抽象类。2.接口:接口是抽象方法的集合,接口中只有抽象方法,被interface修饰。二.抽象类与接口的特......
  • 软件自动化测试入门攻略
     自荐"《软件自动化测试入门攻略》一书是作者花费了近两年时间完成的一本大作,专门为入门、入行人员编写,无论你是初学者,还是想转型、转专业学习软件自动化测试,本书都适合你。书中充分考虑到新手入门自动化测试的特点,从工具学习入手,包括Unittest、Pytest、Requests、Selenium、Po......