接口测试相关知识

接口测试

API 接口测试规范

测试前提

到test阶段,请开发必须提供接口文档

针对研发的API规范,API接口测试用例的规范如下

一、开发API设计规范

二、功能测试点

请求头校验

包含URL的约定和Http Header自定义规范

URL约定

编号
描述
优先级
Comment
5
API 的身份认证应该使用 OAuth 2.0 框架
p0

5.1
URL 里资源的命名必须是名词且为复数,不能有动词
p1

5.2
URL 结尾不应该包含斜杠 “/“
p0
REST API 不允许一个尾部的斜杠,不应该将它们包含在提供给客户端的链接的结尾处
5.3
URL 的路径中的正斜杠“/“字符用于指示资源之间的层次关系
p1

5.4
URL 中的单词使用下划线连接,且都为小写
p1

5.5
相同类型的参数在不同的接口里保持一致的命名(参考下方数据字典表格)
p1

Http Header 自定义规范

字段
内容
描述
Accept
v1: application/json
v2: application/vnd.apache.kylin-v2+json
v4: application/vnd.apache.kylin-v4+json
用于 api 版本区分
Accept-Language
cn/en
用于标识当前客户端浏览器语言,暂时只支持cn/en
Timezone
8
标识客户端时区,比如客户端是 GMT+8,value 值就是 +8
Content-Type
application/json(默认)multipart/form-data
文件上传:情况一:单一的纯文件上传情况二:大表单中,穿插了文件上传的字段,需要合在一起传递,这时候也是采用这种类型

请求方法校验

主要是CURD操作

在这里插入图片描述

请求参数校验

包含参数拼写的校验、参数命名、参数值的校验

参数值分正常场景和异常场景。其中正常场景是指参数值输入合法,异常场景是指参数值不合法。建议在参数校验时对异常场景做更多的覆盖。

某些API对于是否开放有自己的权限,需要特别留意。也包括常规的用户、用户组权限的校验

另外有特定场景的情况下,建议将场景和参数值的校验分离开,既可以理清测试点,也可以节约很多重复的测试

常用参数数据字典(不断补充)

研发定义大小写是否敏感的标准:
在这里插入图片描述

字段
命名
类型
comment
项目名称
project
String
大小写不敏感
每页显示条数
page_size
Number

页码
page_offset
Number
从 0 开始
总记录数
total_size
Number

排序字段
sort_by
String

是否倒序
reverse
Boolean

模型名称
model_name
String
大小写不敏感
cube 名称
cube_name
String

数据源类型
datasource_type
String

数据库
database
String


table
String

最后更新时间
last_modified
时间戳毫秒数

创建时间
create_time
时间戳毫秒数

描述
description
String

所有者
owner
String

用户名
username
String
大小写不敏感
用户组名
user_group_name
String

密码
password
String

维度名
dimension_name
String

度量名
measure_name
String

可计算列名
computed_column_name
String

枚举类型 action、status、type等

String
大小写不敏感
字段
命名
类型
comment
项目名称
project
String
大小写不敏感
每页显示条数
page_size
Number

页码
page_offset
Number
从 0 开始
总记录数
total_size
Number

排序字段
sort_by
String

是否倒序
reverse
Boolean

模型名称
model_name
String
大小写不敏感
cube 名称
cube_name
String

数据源类型
datasource_type
String

数据库
database
String


table
String

最后更新时间
last_modified
时间戳毫秒数

创建时间
create_time
时间戳毫秒数

描述
description
String

所有者
owner
String

用户名
username
String
大小写不敏感
用户组名
user_group_name
String

密码
password
String

维度名
dimension_name
String

度量名
measure_name
String

可计算列名
computed_column_name
String

枚举类型 action、status、type等

String
大小写不敏感

测试角度参考
在这里插入图片描述

检验点
检验规则
详细检验
优先级
传参检验
正常场景–参数值合法

参数取值范围覆盖
P0
覆盖所有必选参数
P0
组合配置可选参数
P1
异常场景–参数值不合法
边界测试:如get/delete参数不能过长
P2
类型非法
P2
字段缺失
P2
字段值缺失(为空)
P2
增加不存在参数:区分可选/必选
P3
参数设置为特殊字符
P2
参数设置特殊值 -1 0 null
P2
权限校验
授予权限
正常调用
P1
不授予权限
无法调用
P2
场景校验

主流程场景
主流程相关场景
P1
分支流程场景
分支流程
P2
异常场景
异常场景
P2

响应内容校验

主要包含Response的结果规范和内容约定,以产品手册为准

编号
描述
优先级
Comment
5.8
Response 的结构规范(参考下方 Response 结构规范表格)
p1

5.9
Response 内容约定(参考下方 Response 内容约定表格)
p1

Response 的结构规范

http 状态码
处理范围
返回数据格式
说明
200
接口请求成功
{
“code”:“000”,
“data”:xxx,
“msg”:“”
}
code:默认是000data:返回给前端的数据msg:返回给前端的信息
400
接口请求发生业务级别错误
{
“code”:“001”,
“data”:null,
“msg”:“”,
“exception”:“”,
“url”:“”,
“stacktrace”:“”
}
code:自定义code错误码, 从001~998,默认为999为UNDEFINEDdata:返回给前端的数据msg:返回给前端的信息exception:与msg的值相同,为向前兼容而保留url:报错接口名stacktrace:报错的stacktrace 注:code 码为三个数字,对于单个api接口保持不重复,非全局唯一历史代码中已经有很多API会返回400,这类API目前默认返回999 code
500
接口请求发生系统级别错误
{
“code”:“999”,
“data”:null,
“msg”:“”,
“exception”:“”,
“url”:“”,
“stacktrace”:“”
}
同上,一般情况下返回的code都是999
401
session 过期/未登录
{
“code”:“999”,
“data”:null,
“msg”:“KE-00000001(未知错误码) 找不到权限信息”,
“exception”:“找不到权限信息”,
“url”:“”,
“stacktrace”:“”
}

Response 内容约定

type
value
comment
Object
空值:null
正常:{ key: ‘xxx’ }

Array
空值:[]
正常:[‘xxx’, ‘ddd’] 或者 [ {key: ‘xxx’}, {key: ‘sss’} ]

String
空值:‘’
正常:‘ssss’

其他
有默认值用默认值无默认值,空态时,均为 null

三、性能测试点

接口性能测试主要有:单接口性能压测、多接口组合性能压测(对多接口组合的性能压测按实际需求出发)

测试对象
压测场景
参考意见
单接口性能测试
并发数
参考产品规格,或者研发建议
执行时间
一次并发;多次并发;长时间并发等

测试角度参考

GET类型的请求并发数可以较大;PUT、POST类型的请求并发数建议按照实际环境和场景设置

入参值相同、不同的情况都需要覆盖,特别是入参相同时的压测很重要,可以看出接口功能的健壮与否

四、测试用例思维导图模板
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值