接口测试总结及其用例设计方法整理,希望可以帮到你

news2024/11/18 22:22:10

目录

 接口测试的总结文档

第一部分:

第二部分:

接口测试用例设计


 接口测试的总结文档

  第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做?

  第二部分:主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估相关内容。

第一部分:

首先,在做接口测试的过程中,经常有后端开发会问:

后端接口都测试什么?怎么测的?

后端接口测试一遍 ,前端也测试一遍,是不是重复测试了?

      于是,为了向开发解释上述问题,普及基本的测试常识,特意梳理了接口测试的相关内容以及其与前端测试的区别,使开发团队与测试团队在测试这件上达成基本的共识,提高团队协作效率,从而更好的保证产品质量。

python接口自动化测试视频教程:2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibiliicon-default.png?t=N4HBhttps://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0

               

 

然后,我们试着回答上面的问题:

问题1.1、后端接口都测试什么?

--回答这个问题,我们可以从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容:

 

问题1.2、我们怎么做接口测试?

  --由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。

问题2、后端接口测试一遍 ,前端也测试一遍,是不是重复测试了?

  --回答这个问题,我们可以直接对比接口测试和app端测试活动的内容,如下图为app测试时需要覆盖或考虑内容:

 

   从上面这两张图对比可以看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分由于各自特性或关注点不同需要进行特殊的测试,在此不做讨论。接下来我们针对以上三部分相同的内容再进行分析:

1、基本功能测试:

  由于是针对基本业务功能进行测试,所以这部分是两种测试重合度最高的一块,开发同学通常所指的也主要是这部分的内容。

2、边界分析测试:

  在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。但是,前端的输入输出很多时候都是提供固守的值让用户选择(如下拉框),在这种情况下测试的边界范围就非常有限,但接口测试就不存在这方面的限制,相对来说接口可以覆盖的范围更广,同样的,接口出现问题的概率也更高。

 3、性能测试:

  这个比较容易区分,虽然都需要做性能测试,但关注点确大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。两种测试时的策略和方法都有很大区别,所以这部分内容是需要分开单独进行测试的,理论上来说这也是不同的部分。

综论:

      1、接口测试和app测试的活动有部分重复的内容,主要集中在业务功能测试方面。除此之外,针对各自特性的测试都不一样,需要分别进行有针对性的测试,才能确保整个产品的质量。

  2、接口测试可以关注于服务器逻辑验证,而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证

  

第二部分:

1、什么是接口测试?

      接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

2、为什么要做接口测试?

  a) 如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。

  b)  接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

  c)   现在很多系统前后端架构是分离的,从安全层面来说:

        1、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

        2、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

3、接口测试持续集成:

      对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

  a) 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

  b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等

  c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

  d) 结果校验:加强自动化校验能力,如数据库信息校验。

  e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。

  f) 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

4、接口测试质量评估标准:

  a) 业务功能覆盖是否完整

  b) 业务规则覆盖是否完整

  c) 参数验证是否达到要求(边界、业务规则)

  d) 接口异常场景覆盖是否完整

  e) 接口覆盖率是否达到要求

  f)  代码覆盖率是否达到要求

  g) 性能指标是否满足要求

  h) 安全指标是否满足要求

python接口自动化测试:

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibiliicon-default.png?t=N4HBhttps://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0                      

 

接口测试用例设计

一、    用例设计过程:

罗马不是一天建成的,用例不是一次完成的;书写测试用例本身和完善代码一样,也是一个循序渐进的过程。

首先,必须熟读需求说明书和接口设计文档,了解每个接口具体的使用场景,明白软件的性能指标。

其次,设计接口测试用例:开始在编码阶段,测试人员根据需求说明书和接口设计文档设计接口测试用例。

然后,code review:开发完成编码后,在时间充裕的条件下,要进行 code review,一方面是检查开发的代码功能逻辑是否正确,另一方面通过review开发的代码来补充接口测试用例。

      最后,完成用例后,随着对系统了解的增多,不断提高用例精度,对测试用例需要进行定期review,一旦测试需求发生变化,测试用例必须重新维护。

二、接口测试用例构思结构:

 

阶段一:开发在编码,测试拿到需求文档和接口设计文档:

1、基本功能测试(业务测试):

根据需求文档和接口设计文档的转译,需要清楚业务流程规则和每个接口的使用场景方式,设计符合业务逻辑和接口使用场景的用例。

2、边界分析测试:

在基本功能的基础上,开始考虑接口输入输出参数的影响。主要采用等价类划分、边界值分析方法等。

l  覆盖所有的必选参数

l   组合可选参数

l  参数有无、或为null

l  参数的顺序、个数、类型

l  参数类型数值大小、输入的数值的范围

l  参数字串长短,Null-max-max+1

l  参数包含特殊字符

3、参数组合测试:

      在边界分析的基础上,考虑输入条件的各种组合、输入条件之间的相互制约关系。主要使用因果图法进行用例设计。

4、异常情况测试:

接口实现是否对异常情况都进行了处理,接口输入参数虽然合法,但是在接口实现中,也会出现异常,因为内部的异常不一定是输入的数据造成的,而有可能是其他逻辑造成的,程序需要对任何异常都进行处理,比如:某个接口需要先登录获取 sesssion,如果直接调用该接口应该给出相应提示。

5、幂等级测试:

     简单说就时针对连续重复提交的情况的进行测试,特别是涉及到交易金额的场景,需要验证软件是如何处理的。

6、并发测试:

     两个以上用户同时操作使用同一场景时,可能引导争夺资源,死锁等现象。

 

7、事务性测试:

      一个业务流程包含多个操作步骤,如果某个操作失败,那么整个操作需要回滚。或者调用前一个步骤的逆向接口进行操作取消。

 

8、大数据量时测试

     数据库里数据量较大时(百万级),测试对DB进行增删改查操作的效率。

9、环境异常测试

   关联系统出现宕机、超时或者无响应的状态时,接口返回提示正确,业务逻辑正确,不可存在事务性不一致的情况

阶段二:开发完成编码,测试时间充裕的条件下,需要对开发的代码进行code review

 

1、      review开发的代码实际业务逻辑是否正确

2、隐含条件测试:

进行code review,检查代码中是否有隐含的默认条件。例如:F项目中的getRecommendArticleList接口,代码中默认查询返回4条记录(如下图),但在接口文档中并未提到,如果不review code而开发也不告诉我们的话,这种情况肯定会漏测。

3、SQL测试:

针对需要进行数据库操作的接口,查看相关sql,对sql的正确性进行验证。如下图,一般sql的过滤条件都会比开发告诉我们的要多,所以查看sql进行验证是最保险的方式,特别需要设计组合条件的场景进行验证:

三、测试过程验证点:

1、接口返回数据

a)         返回json数据的层次关系是否与文档一致

b)        数值类型数据: 特别是金额,负数、小数转为json输出是否正确

c)         接口返回数据与接口文档一致

d)        接口返回数据和数据库一致

e)         接口返回数据符合业务逻辑(比如转账功能,从一个账户扣款,另一个要增加相应金额)

f)          对于列表,应该根据请求参数,也应该验证列表的长度是否与期望值一致

g)         负面测试用例,应验证ERROR INFO是否与实际相匹配

2、数据库

a)         接口传入数据与插入DB的数据一致性:

b)        前端某个操作涉及后台DB多张表时,每张表都要检验数据正确性。

3、安全层面:

a)         后端接口返回给前端的数据包含敏感信息(如:姓名、身份证号、卡号、手机号、加密后的密码等)时,不能明文传输,需要加密。

b)        后台打日志要求对于敏感信息不能打出,或者进行加星号脱敏后打出,具体有:

1)          身份证号,用户密码(含加密后),用户手机号码,用户姓名,银行卡号

2)          身份证号码脱敏字段为生日时,生日在日志中不能打出

4、性能层面:

a)         接口响应时间:  接口处理数据的时间也是测试需要关注的一个点。牵扯到内部就是算法与代码的优化

b)        接口数据包大小:接口传递的数据包大小也需要关注,特别是返回给前端的接口,要把不同接口数据包大小需要做限制。

c)         并发承载能力:多用户并发时接口可以承载合同中的并发量。

python接口自动化测试:

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibiliicon-default.png?t=N4HBhttps://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ios中video标签兼容问题

案例 这是在实际开发中遇到的问题,产品给出的效果图如下: 其实就是一个h5页面中有很多视频, 但是我为什么都画着预览图呢? 因为在ios中video标签中尽管有src属性, 但是在没有预览图的情况下, 是一个灰蒙蒙的图层的, 很丑, 效果如下: 看到这里是不是很崩溃, 在PC端, 在安卓端…

RK3568平台开发系列讲解(Camera篇)快速了解RK Camera的使用

🚀返回专栏总目录 文章目录 一、MIPI CSI1.1 Full Mode特点1.2 Split Mode特点二、Full Mode配置2.1 配置sensor端2.2 csi2_dphy0相关配置2.3 isp相关配置三、Split Mode配置3.1 配置sensor端3.2 csi2_dphy1/csi2_dphy2相关配置3.3 isp相关配置四、软件相关目录

自然语言处理实战项目7-利用层次聚类方法做文本的排重,从大量的文本中找出相似文本

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目7-利用层次聚类方法做文本的排重,从大量的文本中找出相似文本。随着互联网技术的不断发展,越来越多的数据被广泛地应用在各个领域中。而文本数据是其中之一,…

ar在汽车维修行业的应用场景

由于AR增强现实技术的易用性,在汽车产业链中,已处处可见AR技术的踪影,像汽车设计AR远程协同,汽车装配AR远程指导,汽车维修AR远程协助等等,那么下面为详细介绍AR增强现实技术在汽车制造领域的应用。 环境/物…

实力在线 | 赛宁网安连续三年入选《中国网络安全市场全景图》

​​近日,国内专业安全机构数说安全正式发布了《2023年中国网络安全市场全景图》(以下简称全景图)。此次全景图分类架构涵盖了产品、解决方案、应用场景、服务4个维度,覆盖了目前我国网络安全行业所有成熟的细分市场。 赛宁网安凭…

Postman实现数字签名,Session依赖, 接口依赖, 异步接口结果轮询

Script(JS)为Postman赋予无限可能 基于Postman 6.1.4 Mac Native版 演示结合user_api_demo实现 PS 最近接到任务, 要把几种基本下单接口调试和持续集成一下, 做个常规功能验证, 研究了下发现, 不同的下单途径, 有的需要登录(Session依赖), 有的需要验签(使用数字签名的微服务),…

用本地机做跳板使服务器连接外网【mac】

用自己的电脑做跳板使服务器连接外网 前提整体流程连接服务器配置服务器配置自己的电脑 前提 很多时候我们的服务器只能联内网,但是没法登外网,这样pip,conda 啥的都没法用,很麻烦。 一个简单的解决方法就是用自己的电脑作为跳板…

补充点【数据分析统计学知识点】

数据分析所需的统计学笔记 0.数据分析师拿到数据 第一利器:描述性统计信息 第二利器:对比分析法 第三利器:指标体系-要素拆解,维度拆解 第四利器:相关分析 第五利器:趋势预测 1.均值 2.中位数 3.众数…

基于Java+SpringBoot+vue的口腔管家平台设计与实现

博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例…

Hadoop 3.0.0的集群搭建和Hive 3.1.3的安装

Hi,朋友们,我们又见面了,这一次我给大家带来的是Hadoop集群搭建及Hive的安装。 说明一下,网上有很多的教程,为什么我还要水? 第一,大多数的安装都是很顺利的,没有疑难解答。 第二&#xff0c…

分布式项目08 redis的扩容,预备redis宕机的哨兵处理 和 最后集大成redis集群

01.redis扩容 由于redis的容量也是有限的,所以,就会有扩容的操作。也就好像内存中扩容一样。redis有分片这种说法,具体实现操作如下: 第一步:首先在/usr/local/src中去找到redis文件夹。cd /usr/local/src 而后进入re…

瑞吉外卖 - 菜品信息分页查询功能(17)

某马瑞吉外卖单体架构项目完整开发文档,基于 Spring Boot 2.7.11 JDK 11。预计 5 月 20 日前更新完成,有需要的胖友记得一键三连,关注主页 “瑞吉外卖” 专栏获取最新文章。 相关资料:https://pan.baidu.com/s/1rO1Vytcp67mcw-PD…

开源大语言模型完整列表

Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 LLM 通常基于神经网络模型,使用大规模的语料库进行训练,比如使…

【Linux进阶之路】基本指令(下)

文章目录 一. 日志 date指令——查看日期基本语法1基本语法2cal指令——查看日历常见选项 二 .find——查找文件常用选项-name显示所有文件显示指定类型的文件 三.grep——行文本过滤工具语法常见的用法补充知识——APP与服务器的联系 四.打包压缩与解压解包zip与unzipzipunzip…

又一高速AD/DA数据采集卡问世,何不了解一下?

FMC190 子卡集成 2 通道 3Gsps 采样率,14 位 AD,2 通道12.8Gsps 16 位DA。板载时钟芯片 HMC7044,可以提供JESD204B所需要的各种时钟。具有同步/触发功能,模拟信号采用 SSMA 射频连接器输入和输出。板载时钟芯片为 HMC7044&#xf…

Unity UI -- (3)管理屏幕大小和锚点

在前面我们探索了一些基本的文本格式。我们需要考虑一个问题,这个文本在屏幕大小发生变化时该如何适应呢? 在Unity中,我们可以使用Canvas和Anchor Point(锚点)系统来确保UI元素总是出现在正确的位置,不管它…

Arduino ESP32的串口

Arduino的ESP32的三个串口 ESP32的三个串口 在Arduino的核心中有三个串口,分别是Serial,Serial1,和Serial2. 当然ESP32也可以使用软串口。但硬件串口更稳健(我这样理解)。但Serial1这个串口不能使用,因为…

腾讯云轻量应用服务器公网带宽速度如何?

腾讯云轻量应用服务器网速怎么样?轻量应用公网IP带宽速度与地域有关,中国大陆地域如北京、上海、广州等地域采用多线BGP网络,保障轻量应用服务器的速度,中国香港国际CN2高速网络。中国内地的地域大家是完全不用担心,大…

Eureka实战入门

spring cloud的版本 spring cloud的版本是根据springboot版本确定的 Spring Cloud Dalston, Edgware, Finchley, and Greenwich 版本不再更新了 版本 SNAPSHOT:开发版本,最新版本 Milestone:大版本在发布前的里程碑的版本 Release candi…

usb摄像头驱动-core层hub.c

usb摄像头驱动-core层hub.c 文章目录 usb摄像头驱动-core层hub.cusb_hub_inithub_probehub_eventport_eventhub_port_connect_changehub_port_connectusb_new_deviceannounce_device 在USB摄像头驱动中,hub.c文件扮演着USB集线器(Hub)驱动的角…