简介
YAPI支持接口入参参数化,解决请求参数依赖其他接口的返回数据或参数,可以大大方便接口自动化测试。
简单使用
变量参数
YApi 提供了强大的变量参数功能,你可以在测试的时候使用前面接口的 参数
或 返回值
作为 后面接口的参数
,即使接口之间存在依赖,也可以轻松 一键测试
。
Tips:
参数只能是测试过程中排在前面的接口中的变量参数
①请求参数里获取其他接口的响应值
适用场景:请求参数的值要动态获取前面的接口返回的响应值时; 格式为:{{ $.测试用例编号.body.data.id}}
,要加引号。
例如:现有两个接口,分别是“创建或者修改话题”和“获取课程通用配置”
获取课程通用配置接口需要传参数: 业务id(businessId)
,而这个 businessId
需要通过 创建或者修改话题
的返回值获取,这时应在 创建或者修改话题
的响应body中,找到获取课程通用配置
依赖前者的参数字段,也就是下面响应body中的id字段
。
创建或者修改话题
的返回值有如下结构:
就是其中的id字段
响应body:
{
"id": "1617688655242412",
"state": {
"code": 0,
"msg": "操作成功"
},
"data": {
"liveTopicView": {
"id": "2000000510210047",
"liveId": "2000000113920002",
"topic": "测试-付费阅读-付费2",
"planTime": null,
"speaker": "",
"remark": null,
"status": "beginning",
"browseNum": 0,
"commentNum": 0,
"startTime": "2025-01-01 12:00:00",
"endTime": "",
"endTimeStamp": null,
"createBy": "2000000068910024"
}
},
"etag": null
}
如上图可得,获取创建或者修改话题
的id
的值,则在获取课程通用配置
请求参数中填写:{{ $.5628.body.data.liveTopicView.id}}
,如下图所示。
②请求参数里获取其他接口的请求参数值
适用场景:请求参数的值要动态获取前面的接口的请求参数值时; 格式为:{{ $.测试用例编号.params.data.id}}
,要加引号。
创建或者修改话题
的请求参数有如下结构:
就是其中的user字段
请求参数:
{
"id": "1583460509602802",
"sign": "5a36369be9ca00df34d5c46c204ad4a1",
"timestamp": 1583460509602,
"data": {
"liveId": "2000000113920002",
"channelId": "",
"campId": "",
"topic": "测试-付费阅读-付费3",
"startTime": "2025-01-01 12:00:00",
"style": "article",
"type": "charge",
"money": 10000,
"password": "",
"isAutoShareOpen": "N",
"autoSharePercent": 0,
"isNeedAuth": "Y",
"preventCopy": "N",
"banPcRead": "N",
"backgroundUrl": "https://img.com/qlLive/liveCommon/default-bg-cover-19080805.png",
"userId": "2000000068910024",
"ip": "219.137.142.18"
}
}
如上图可得,获取创建或者修改话题
的userId
的值,则在获取课程通用配置
请求参数中填写:"{{ $.5628.params.data.userId}}"
,如下图所示。
其中 $.
是使用 动态变量
的标志,$.5628.params
即表示 key 值为 5628 用例的请求参数,$.5628.body 即表示 key 值为 5628 用例的返回值。