接口自动化测试实践指导(中):接口测试场景有哪些_接口测试的应用场景-程序员宅基地

技术标签: 云原生  Eolink Api工具  测试用例  测试  工具  

在第一篇文章 接口自动化测试实践指导(上):接口自动化需要做哪些准备工作中详细给小伙伴们讲解了一下接口自动化需要做哪些准备工作,准备工作中最后一步接口测试用例设计是非常重要的一个环节,用例设计的好不好,直接关系到我们的测试质量,那如何进行测试用例设计呢,这里呢我结合自身经验,帮助大家梳理一下接口测试用例设计思路,希望对大家后续接口测试工作有所帮助和提升。

可以看看这个 : https://www.eolink.com/

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/


文末送书5本

赠送书籍:《Python软件测试实战宝典》
赠送数量:5
赠送规则:本文三连并分享
进抽奖群:加臻哥福利小助手进群( szzdzhp002 ) 回复暗号:25
中奖概率会保持在25%以上

本书从Python基础入手,系统讲解了使用Python语言来做接口自动化测试、性能自动化测试、安全测试以及功能自动化回归测试。
全书由浅入深,系统化地将作者多年测试开发工作中遇到的问题、解决方案等进行了实例化的阐述,书中丰富的实例代码可以直接在软件的各个自动化测试场景中使用。
作者针对近年来企业对测试开发岗位的需求倾力打造了此书,希望借由此书的出版能够使更多的读者更好地掌握Python测试开发的技能,并找到更理想的软件测试工作。
本书附赠全部测试实例源代码文件及Python软件测试核心知识点精讲视频。本书适合从事软件测试工作的技术人员及希望从事软件测试的专业人员阅读,也适合计算机、软件工程、自动化等相关专业的学生与老师参考。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010634066/article/details/126278383

智能推荐

2021 开发何不换种姿势 LLVM+clang+Meson+ninja_ninja 和clang-程序员宅基地

文章浏览阅读1.7k次。目前常见的C/C++开发多数使用的是gnu+makefile的开发方式,每次开发的时候编译的配置文件写的头疼.而使用cmake虽然可以自动辅助生成makefile文件,并且可移植性也变得更好的,不过也常常逃不掉要经常手动修改的时候自己的cmake文件的命运,那有没有更高效的方法呢?叮叮~LLVM+clang+Menson+ninja 豪华大礼包值得了解一下**LLVM和Clang 原意为 low level virtual machine,不过实际上现在的LLVM从来没有用过虚拟机,用于编译器的链_ninja 和clang

C语言实现的PLC软定时器 上升沿,下降沿判断算法及功能_c语言上升沿和下降沿程序-程序员宅基地

文章浏览阅读7.2k次,点赞18次,收藏21次。一、序言 使用单片机开发开发过程控制中,经常会用到定时,变量上升沿动作,下降沿动作,在业余做了个单独工具处理模块二、C代码组成如下共有.h文件和.c文件组成。2.1 F00200_utils.h代码构成#ifndef __F00200_UTILS_H__#define __F00200_UTILS_H__#include "stm32f10x.h"#define P..._c语言上升沿和下降沿程序

七种常见的逻辑门真值表_各大逻辑门真值表-程序员宅基地

文章浏览阅读6.2w次,点赞47次,收藏289次。(verilog学习笔记一之常见的逻辑门真值表)1、 与门:所有输入为高时,才会有输出高。逻辑函数表示为F=A*B。输入A输入B输出Y0000101001112、 或门:所有输入为低时,才会有输出低。逻辑函数表示为F= A + B。输入A输入B输出Y0000111011..._各大逻辑门真值表

FreeSWITCH实现AMR/AMR-WB编解码_amrwbenc-程序员宅基地

文章浏览阅读1.9k次。1、写在前面FreeSWITCH对AMR和AMR-WB两种编码格式默认为passthough状态,若想对AMR和AMR-WB进行编解码,需对mod_amr和mod_amrwb两个模块重新编译。本文介绍通过源码编译所需的opencore-amr和ov-amrwbenc两个依赖库。当然也可使用yum等工具直接安装libopencore-amrnb.so、libopencore-armwb.so、libvo-amrwbenc.so.本文内涉及的所有路径,均可根据实际情况进行更改,不局限于root用户。2、_amrwbenc

c++语言实现字符分割,C++常用字符串分割方法实例汇总-程序员宅基地

文章浏览阅读824次。本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考。具体分析如下:我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。一、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始..._c/c++按指定字符分割

凸包最小外接矩形-程序员宅基地

文章浏览阅读3.4k次。获取点的凸包之后,可以实现以下获取凸包的最小外接矩形,获取思路:1、以其中两点作为矩形的一条边2、以该边作为x轴基坐标,并做y轴基坐标3、将所有点以该基坐标进行旋转,找到以该边为基准的所有点的x坐标的最小和最大值,既y轴的最大值4、获取该范围的面积值,并获取边界数据5、重复每条边,并每次判断保存最小面积及参数6、最终输出最小外接矩形的参数参考:https://blog.csdn.ne..._凸包最小外接矩形

随便推点

如何使用计算机勾绘汇水面积,汇水面积怎么计算-程序员宅基地

文章浏览阅读853次。雨水汇水面积应按地面、屋面水平投影面积计算。高出屋面的侧墙,应附加其最大受雨面正投影的一半作为有效汇水面积计算。也就是54.6*27计算就好,如果考虑最大受雨面积的话需要给出楼梯间突出屋面的高度。假设高度为3米,计算在计算一个最大受雨面3*(9+4.5)/2就好。也就是,1474.2+20.25=1494.45平方米。汇水面积指的是雨水流向同一山谷地面的受雨面积。跨越河流、山谷修筑道路时,必须建桥..._水库汇水区怎么画

面试知识积累,人工智能技术应用笔记(六,Python工程面试问题-程序员宅基地

文章浏览阅读649次,点赞11次,收藏5次。本篇为《人工智能技术应用》专栏的第六篇。希望以学习笔记的形式和大家一起了解和探索人工智能技术的实际应用。

在哪看oracle归档日志,oracle查看归档日志路径-程序员宅基地

文章浏览阅读2.6k次。oracle查看归档日志路径第一种办法是去默认目录$ORACLE_BASE/flash_recovery_area查看,在oracle10g、oracle11g系列的版本里面[oracle@pldb236 ~]$ ll $ORACLE_BASE/flash_recovery_areatotal 8drwxr-x---. 6 oracle oinstall 4096 Mar 14 18:33 stu..._oracle归档日志文件在哪

Mysql server出现“Mysql server has gone away”的错误的解决方式-程序员宅基地

文章浏览阅读3.7w次,点赞2次,收藏18次。一、最常见的原因分析及解决方法 wait_timeout 和 interactive_timeout在官方的文档中给出了出现“Mysql server has gone away”的错误的分析原因:https://dev.mysql.com/doc/refman/5.7/en/gone-away.html出现该问题的主要原因是:Mysql server服务器超时,并且关闭了与客户端的连接导致的。在这_mysql server has gone away

css:阴影效果box-shadow-程序员宅基地

文章浏览阅读450次。css:阴影效果box-shadow

C语言程序设计第六次作业——循环结构(2)-程序员宅基地

文章浏览阅读377次。(一)改错题序列求和:输入一个正实数eps,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... ,精确到最后一项的绝对值小于eps(保留6位小数)。  输入输出样例:  Input eps:1E-4  s = 0.835699  错误信息:  错误原因:第17行while后面缺少;  改正方法:添加;  错误信息:  错误原因:输出结果与要求不符。  改正方法..._本关任务:输入一个正实数 eps,计算并输出下式的值,精确到最后一项的绝对值小于 ep

推荐文章

热门文章

相关标签