2023最详细的接口测试用例设计教程

一、接口测试流程

1、需求讨论

2、需求评审

3、场景设计

4、数据准备

5、测试执行

二、分析接口文档元素

1、接口名称

2、接口地址

3、支持格式

4、请求方式

5、请求参数(参数名称、类型、是否必填、参数说明等)

6、返回参数(返回码、返回值信息、返回JSON串信息)

三、如何设计接口测试用例

3.1、为什么要设计测试用例

1、理清思路、避免漏测

2、提高测试效率

3、跟进测试进度

4、体现任务工作量

5、跟进重复性工作

3.2、设计接口测试用例从哪些方面考虑
1、功能

功能是否正常

功能是否按照接口文档实现

正常场景

异常场景

2、逻辑业务

是否依赖业务、比如是否登录成功

3、异常测试

(1)参数异常

关键字参数、参数为空、多参数、少参数、错误参数

覆盖所有的必选参数,组合可选参数,参数有、无或为null,参数的顺序、个数、类型

参数类型数值大小、输入的数值范围,参数字串长短,参数包含特殊字符

(2)数据异常

关键字数据、数据为空、长度不一致、错误数据

4、安全

Cookie

header

唯一识别码

四、常用的接口测试用例覆盖方法

1、必须参数覆盖

对于接口的参数,接口文档一般都会说明哪些是必需的,哪些是非必需的。

对于必需的参数,一定要测试传参数和不传参数接口是否报错。

2、必须参数各种情况覆盖

传非法的字符,特殊的字符,空值,超过边界的参数是否报错?错误信息是否正确?

3、非必须参数覆盖

一般接口对于非必需参数都不会做非正常性传值的判断,所以要测试合法的参数值,接口返回的内容是否正确。

如果有接口文档说明对非必需参数做了非正常的验证的话,也要对其进行验证。

4、参数组合覆盖

有些参数需要相互配合着才起作用,如“offset”和“count”组合起来进行翻页,这个时候要组合起来进行测试。

5、业务逻辑相关覆盖

有些接口与业务逻辑关联密切,单独从接口角度测试,可能会遗漏掉一些因业务逻辑而产生的bug。

所以如果和业务逻辑相关,也要考虑到业务逻辑相关的测试用例。

五、接口测试接口优先级

1、优先级 - 针对所有接口

(1)暴露在外面的接口,因为通常该接口会给第三方调用

(2)供系统内部调用的核心功能接口

(3)供系统内部调用非核心功能接口

2、优先级 - 针对单个接口

(1)正向用例优先测试,逆向用例次之(通常情况,非绝对)

(2)是否满足前提条件 > 是否携带默认参数 > 参数是否必填 > 参数之间是否存在关联 > 参数数据类型限制 >参数数据类型自身的数据范围限制

六、接口测试的设计思路分析

1、是否满足前提条件

有些接口需要满足前置条件,才可成功获取数据。如常见的需要登陆Token。

逆向用例:

针对是否满足前置条件(假设为n个条件),设计0~n条用例

2、是否携带默认值参数

正向用例:

带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其它不填写,设计正向用例

3、业务规则、功能需求

根据实际情况,结合接口参数说明,可能需要设计n条正向用例和逆向用例

4、参数是否必填

逆向用例:

针对每个必填参数,都设计1条参数值为空的逆向用例

5、参数之间是否存在关联

有些参数彼此之间存在相互制约的关系

逆向用例:

根据实际情况,可能需要设计0~n条用例

6、参数数据类型限制

逆向用例:

针对每个参数都设计1条参数值类型不符的逆向用例

7、参数数据类型自身的数据范围限制

正向用例:

针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例

逆向用例:

针对每个参数(假设n个),设计n条每个参数的参数值都超出数据范围最大值的逆向用例

针对每个参数(假设n个),设计n条每个参数的参数值都小于数据范围最小值的逆向用例

总结:

以上几个方面考虑全的话,基本可以做到如下几个方面的覆盖:

(1)主流程测试用例:正常的主流程功能校验

(2)分支流测试用例:正常的分支流功能校验

(3)异常流测试用例:异常容错校验

七、接口测试返回结果的比较

目的:

验证代码正常

验证代码正确

1、比较返回码

2、比较返回值的完整性,即返回的key全不全

3、比较key的value数据类型

4、比较key对应的value值(也包括验证业务相关数据的value值)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中国移动无线城市集中运营服务平台系统项目 详细设计说明书 文档标识: 当前版本: 1.0 当前状态: 草稿 发布日期: 2012-8-28 发布  修改历史 日期 版本 作者 修改内容 评审号 变更控制号 2012-8-28 1.0 拓维 新建 目 录 1 总则 2 1.1 编写目的 2 1.2 读者对象 2 1.3 参考文档 2 1.4 术语与缩写 2 2 系统概述 2 2.1 模块结构 2 2.2 采用技术 3 3 模块设计 4 3.1 模块1 4 3.2 模块2…… 9 4 模块详细设计 9 4.1 模块1 9 4.2 模块2…… 12 1 总则 1.1 编写目的 明确任务和需求,使得软件开发人员知道软件开发流程,软件测试时更有条理 1.2 读者对象 描述该文档的阅读对象。 1.3 参考文档 描述该文档的参考文档。 1.4 术语与缩写 描述该文档的术语及解释。 2 系统概述 2.1 模块结构 描述软件系统的总体结构,可以使用结构图、层次分解图或包图来描述,并应说明系统结构划分的原则(例如,基于标准、协议所规定的体系结构,来自于分析模型的方案,或者基于原有体系结构的限制)。 示例: 2.2 采用技术 描述该系统所采用的技术。 示例: 数据ETL采用C++编程技术,经过FtpMain从外围系统抽取数据,Transfer_Main对数据进行清洗,load_data对清洗后的数据进行加载,完成ETL处理过程;前台流程配置界面采用JAVA编程技术,流程调度通过调度控件完成调度控制。 数据处理层(存储层、应用层、访问层)通过DB2存储过程技术实现对数据流的规则定义,通过调度程序完成数据流的流向控制。 最终展现,通过JAVA、JSP、HTML、GIS,视频监控等编程技术完成代码开发,并部署到WEB应用服务器(WebSphere等),主题采用BRIO工具结合WEB页面,地图技术,视频技术进行多维展现。 3 模块设计 按照需求进行模块分析和设计。 3.1 模块1 3.1.1 模块说明 描述该模块的功能,对该模块进行说明。 示例: 实体渠道:提供渠道发展用户分析、业务受理分析、渠道构成分析、资源分析、考核分析,监控和评估渠道的运营状况和管理能力。 如果采用面向对象的设计模式,则可以使用用例图等来说明这些设计类之间如何交互,实现本模块的典型功能。 示例: 用例主要包括购卡支付、购卡冲正、折扣查询、购卡历史记录查询等, 由于采用异步通信方式将支付、冲正分为请求和响应两个子用例。 用例说明: 购卡支付请求:该用例说明用户通过短消息、wap、web等通信接入手段购买卡系统提供的各种卡,以短信为例,用户通过短消息向系统提交购卡指令,系统查询卡类型及金额,如卡类型正确则生成订单消息,并向用户的银行帐号扣款的支付请求。 购卡支付响应:若支付请求返回正确响应,系统查询原订单和交易记录,返回相应的卡号和密码,以短消息形式通知用户;如出现超时或数据库操作异常,系统自动发起冲正请求 3.1.2 模块设计 描述模块设计。可以用流程图表示。 示例: 也可以用类图体现。 【利用Rose工具给出系统的主要类框图,描述系统的静态行为】 示例: 主要类说明 MpcpParseChainBean 包名 com.talkweb.card.buzi 类名 MpcpParseChainBean 父类名 ChainBean 责任描述  XML解析  短信指令解析  消息协议转换(MPCP2SpDeliverMsg->TradeInfo) 协同类 使用MPCP2SpDeliverMsg的unmarshal进行XML的解析; 使用TradeInfo作为内部交易协议; 使用DefaultDAO读取数据库中操作; 使用Log提供日志服务 属性 类型 描述 Logger Log 日志管理器 方法说明 方法名 process() 类型 protected Description 解析MPCP2SpDeliverMsg消息的XMLString转换为内部TradeInfo消息 Input InputMsg Output InputMsg Process  进行XML解析  调用MPCP2Trade()进行消息转换 方法名 MPCP2Trade() 类型 private Description MPCP2SpDeliverMsg消息转换TradeInfo Input MPCP2SpDeliverMsg(MPCP短消息) Output TradeInfo(本地交易报文) Process  调用parseCommand()解析短消息内容  将MPCP短消息转换为本地交易报文 方法名 parseCommand() 类型 private Description 解析短信内容为功能码 Input String(短信内容) Output Int(功能码) BUY_CARD= 100; QUERY_MONEY= 110; QUERY_FACE= 111; QUERY_HIS = 120; REPORT= 130; HELP = 140; UNKNOW_COMMAND= 0; Process 根据短信息内容产生功能码 3.1.3 数据结构 描述该模块对应的数据模型。 3.2 模块2…… 同3.1章节。 4 模块详细设计 4.1 模块1 4.1.1 功能点1 4.1.1.1 功能说明 对该功能点进行描述(比如:新增,修改,删除,查询等功能); 或者对该功能点的具体信息进行描述。 示例: 渠道发展用户日分析: 通过时间、地域、品牌、地理位置类型、排他性等角度分析各类渠道每日新增及离网用户的情况,实现对渠道的整体分析和监控。 支持切片、钻取,旋转等分析操作,以图表形式展现, 能够打印图表,并且能将图,表分别以图片格式,excel格式导出. 4.1.1.2 数据设计 描述后台的数据设计(存储过程)。 A示例(功能点): 存 储 过 程 名: CHLDW.ETL2_CUB_COUNTY_ADD_USER_DAY 分 析 类 型: 主题 结 果 表: CHLWI.CUB_CHL_ADD_USER_DAY 运 行 周 期: 日 调 用 方 式: CALL CHLDW.ETL2_CUB_COUNTY_ADD_USER_DAY (YYYYMMDD,0,999,?); 前 驱: 版 本: 1.0 设 计 人: 需 求 分 析 章 节: 1.5.1 需 求 编 码: WCMN000000001M 变 更 情 况: 统计步骤: 1) 开号用户数:取基础层的用户信息表(CHLODS.ODS_USR_INFO)与基本信息表(chlwi.t_channel_basicinfo)用渠道标志(CHANNEL_ID)关联,根据状态标志STS_ID=18,统计开号用户数量. 2) 销号用户数: 取基础层的用户信息表(CHLODS.ODS_USR_INFO)与基本信息表(chlwi.t_channel_basicinfo)用渠道标志(CHANNEL_ID)关联,根据状态标志STS_ID = 20,统计开号用户数量. 3) 预销号用户数:取基础层的用户信息表(CHLODS.ODS_USR_INFO)与基本信息表(chlwi.t_channel_basicinfo)用渠道标志(CHANNEL_ID)关联,根据状态标志STS_ID IN (19,21),统计开号用户数量. 或采用Sequence图来表示。 示例: 4.1.1.3 界面设计 示例: 主界面: 新增修改界面: 4.1.1.4 接口设计 描述接口。 4.1.2 功能点2….. 同4.1.1章节。 4.2 模块2…… 同4.1章节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值