YAPI接口测试步骤
- 测试准备
1.1 登录系统
登录YAPI接口管理系统,登录系统之前需要用vpn连接公司内网
账号:禅道账号,密码:禅道密码
1.2 加入项目
登录系统查看所在的项目,如果左侧看板没有对应的项目,找开发添加到对应的项目里
1.3 安装插件
安装chrome扩展插件
以左家庄-志愿者服务项目为例,在请求接口之前需要安装Chrome扩展插件cross-request,未安装插件“发送”按钮置灰,不能进行接口调试。
解压下面压缩包
Chrome浏览器--设置--更多工具--扩展程序,点击“加载已解压的扩展程序”,找到解压的文件夹,添加到扩展程序里。错误信息忽略,点击“背景页”可以打开调试模式,在请求接口的时候可以查看接口请求信息和返回数据。
添加扩展程序完毕,刷新浏览器,此时的“发送”按钮可以点击状态
1.4 配置环境变量
点击“设置”tab下的“环境配置”菜单,添加所在的测试环境。
环境名称:表示我们当前所属的测试环境,随意填写
环境域名:被测接口的域名
Header:鉴权blade-auth,通过抓包获取。过期时间大概10分钟,需要及时更新
Global:全局变量,根据接口测试需要是否添加。
以上信息输入后点击“保存”,如果提示没有权限,找开发添加配置权限。
- 编写接口测试用例
2.1 接口调试
打开接口列表菜单,选择需要测试的接口,点击“运行”tab,接口请求域名需要1.4章节配置的环境变量。
根据接口的定义,添加对应的参数,如POST请求,需要将请求参数加在body里。
添加好参数,点击“发送”,出现如下信息表示接口是通的
2.2 添加测试集合
点击“测试集合”--“添加集合”,输入集合名称
添加好集合后,选中集合,将需要的测试的接口导入到集合中
2.3 通用规则配置
在编写接口测试用例之前进行通用规则配置,类似于通用断言,这样可以减少对每个接口添加相同的断言
示例:
assert.equal(status, 200) 表示该接口响应状态码是200时,接口通过
assert.equal(body.code, 200) 表示接口返回的body体,code是200,接口通过
assert.equal(body.success, true) 表示接口返回的body体,success是true,接口通过
2.4 编写接口测试用例
2.4.1 接口测试场景示例
是否有必填参数 | 必填参数值是否正确 | 是否有选填参数 | 选填参数值是否正确 | 预期结果 | 断言 |
是 | 是 | 是 | 是 | 返回正常业务数据 | 业务数据断言 |
是 | 是 | 否 | 返回正常业务数据 | 业务数据断言 | |
否 | 是 | 是 | 是 | 返回异常状态码 | 状态码断言 |
是 | 否 | 是 | 是 | 返回异常状态码 | 状态码断言 |
是 | 是 | 是 | 否 | 返回异常状态码 | 状态码断言 |
根据业务需要,参数值可以设置数据大小、长度、数据类型。
2.4.2 接口测试用例格式
接口用例主要设置以下3个值,用例名称、参数格式、请求参数
用例名称:见名知意,例:【1-1】垃圾桶值守台账--列表数据前10条。表示垃圾桶值守台账列表接口的第一条测试用例,场景是请求列表的前10条数据
请求参数格式(Content-Type):,根据传参内容不同使用不同格式application/json、text、img等。
请求参数:以POST请求和GET请求为例,POST请求把请求参数放在body中,GET请求把参数放在QUERY PARAMETERS。
2.4.3 接口测试用例参数设置
根据接口定义的参数类型,可以通过mock方式设置参数值,例如设置current值的大小,操作如下:
点击“高级设置”--mock数据--选中一个数值类型,输入参数内容,下方会展示出表达式和示例。点击“插入”会将动态变量添加到参数值中,请求接口的时候会以动态参数作为入参数据。根据用例设置,mock表达式的数据类型可以选择“日期”、“浮点数”、“布尔值”等。
注意事项:
- 添加的mock表达式要用“”引起来;
- 每次调完接口要点击“更新”,否则不能保存数据。
2.4.4 接口测试用例断言设置
{
"code": 200,
"success": true,
"data": {
"tagList": [
{
"name": "垃圾桶站",
"alias": "垃圾桶站点位",
"id": "1564817299626811394",
}
],
"details": {
"records": {}
"id": "1600807546008563712",
"communityName": "新源里社区",
"code": "27fd7fbf202342bb8e1586c9f495ff8b",
"pointId": "1566741440753750016",
"nameOfPatrolPoint": "新源里西小区(A1-01)",
"addressName": "新源里西小区-新源里西1号楼前",
"watchUserPhone": "18431297027",
"watchState": 2
"updateTimestamp": ""
},
"fileUploads": []
},
"msg": "操作成功"
}
如果将communityName的值断言为“新源里社区”,可以写成:
assert.equal(body.data.details.communityName, "新源里社区"),开关开启执行集合测试的时候该断言才会生效。
对于返回的json字符串,断言表达式括号里面的部分,{}包含{},那么{}用” . ”表示
{}包含[],那么用[n]表示,n表示序列从0开始。
例:Assert.Equal(Body.data.Records[1].name, ”zhangsan” )
- 执行测试
所有接口测试用例写完后,选择测试的所在环境,点击“开始测试”。所有接口用例请求完毕表示测试完成。
- 查看报告
执行完测在测试集合列表查看测试结果,状态为绿色对号表示接口测试通过,其余状态表示接口测试用例未通过,点击“测试报告”查看测试结果