在进行API测试时,我们经常需要反复执行某些测试步骤,以验证API在不同数据和条件下的表现。
例如,我们可以通过一个用户列表接口获取一批邮箱和密码,然后使用这些邮箱和密码批量测试登录接口是否正常工作。
准备工作
首先准备2个API。
1.用户列表接口
https://echo.apipost.cn/userlist.php
该接口返回的内容如下:
{
"data": {
"errcode": 0,
"errstr": "success",
"list": [
{
"email": "test01@apipost.cn",
"password": "123456"
},
{
"email": "test02@apipost.cn",
"password": "123456"
},
{
"email": "test03@apipost.cn",
"password": "123456"
},
{
"email": "test04@apipost.cn",
"password": "111111"
},
{
"email": "test05@apipost.cn",
"password": "222222"
}
]
}
}
2.登陆接口
https://echo.apipost.cn/login.php
该接口的请求参数如下:
{
"email": "test05@apipost.cn",
"password": "222222"
}
该接口返回成功的内容如下:
{
"errcode": 0,
"errstr": "success",
"data": {
"uerId": "9252A47b-0E3B-98d5-DfAC-526b87A5f14f",
"email": "test01@apipost.cn",
"nickName": "远方的诗人"
}
}
返回失败的内容如下:
{
"errcode": 11001,
"errstr": "用户账号不存在",
"data": []
}
配置自动化测试用例
下面我们就利用以上2个接口实现我们的最初目的:批量调用测试数据,以测试登录接口是否正常。
1.新建用例
如下图所示,打开Apipost,我们进入自动化测试-新建用例,名称输入:批量测试登录。
2.配置用例步骤
如下图所示,我们配置该用例的测试步骤。
在以上步骤中,我们首先添加了一个获取用户列表的步骤,方法是直接引入我们建好的用户列表接口。
其次,我们添加了一个循环控制器,该循环控制器的具体配置内容如下图:
如上图所示,我们选择了循环遍历前置步骤的返回结果,并且通过 jsonpath 表达式,直接提取出了返回结果中的数组,如下所示:
[
{
"email": "test01@apipost.cn",
"password": "123456"
},
{
"email": "test02@apipost.cn",
"password": "123456"
},
{
"email": "test03@apipost.cn",
"password": "123456"
},
{
"email": "test04@apipost.cn",
"password": "111111"
},
{
"email": "test05@apipost.cn",
"password": "222222"
}
]
这样,我们就可以直接把这个数组当作测试数据使用。
最后,我们在循环控制器中,添加了一个子操作:引入了用户登录接口。
并且该接口入参使用了同上面数组测试数据同名的参数作为变量传递:
至此,一个完整的自动化用例配置完成,我们的登录接口会依次使用前面的获取用户列表接口返回的email和password进行批量测试,并最终形成测试结果。
同时,我们也可以在登陆接口中设置一个断言,来判断响应是不是匹配我们的预期。
当然,除了上述示例中利用前置接口的返回结果作为测试数据进行循环之外,、还支持其他多种方法来提供测试数据。如下图所示:
这些方法包括:
-
直接上传CSV格式的测试数据
-
使用变量作为测试数据
-
输入固定值作为测试数据等
具体操作步骤可以看看官方视频。
号外!Apipost新版循环控制器太好用了!支持按次数循环、满足条件跳出循环以及循环遍历测试数据等循环类型