什么是参数化
在测试1个接口(login),传入多条不同的数据(用户名+密码)时返回的结果是否和预期一致时;如果用传统的方法一个把测试的账号和密码输入并点登录会增加工作量,没有效率;这时引入了参数化。
把测试的多条数据(账号+密码)数据,放在一个Json或者Csv文件中,实现自动读取数据实现接口测试。
总结就是:一个接口有多条用例,把测试数据和预期值维护到一个csv或者json文件里面,进行参数化运行。针对同一个接口,组织N条不同的测试用例。数据格式完全一致的json文件或csv文件。
不使用参数化
登录接口例子
使用参数化
参数化支持的数据文件格式:JSon、Txt、CSV
JSON和CSV格式的区别:
CSV文件:支持数据量大的测试数据。 缺点:识别不了布尔值true,false;
JSON文件:支持数据量小的测试数据并且支持布尔值。
参数化的方式
Postman中常用的参数化方式:有内置变量、外部文件等
内置变量是在集合内定义集合内部变量
外部文件是通过json文件、txt文件、csv文件等
主要介绍外部文件参数化方式!
定义数据文件
以登录接口为例子:
用户名正确+密码正确,登录成功!{"username":"admin","password":"admin123"}
用户名错误,密码正确,登录失败!{"username":"tom","password":"admin123"}
用户名正确,密码错误,登录失败!**{"username":"admin","password":"lucy99"}**
写一个json文件login.json
写一个txt文件login1.txt
写一个CSV文件login2.CSV
txt格式
json格式
[
{
"title": "账户正确,密码正确,登录成功!",
"username": "admin",
"password": "admin123",
"msg": "操作成功",
"code": "200"
},
{
"title": "用户名错误,密码正确,登录失败!",
"username": "tom",
"password": "admin123",
"msg": "认证失败",
"code": "401"
}
]
CSV格式
读取数据文件
引用测试数据:
第一种:请求参数(URL、请求头、请求体)中,使用 数据文件中的数据
使用 {{}} 包裹 csv文件第一行的字段名。或 json文件的 key名。{{username}}第二种:代码(Tests)中,使用 数据文件中 的数据
使用 postman 内置 关键字data.key 来获取 csv文件的字段名 或 json文件的key名 data.username
pm.test(data.title,function(){
var json_data=pm.response.json();
pm.expect(json_data.msg).to.include(data.msg)
pm.expect(json_data.code).to.eql(data.code)
});
批量运行参数化文件
注意使用外部参数化文件不能直接通过send发送请求
需通过批量运行集合的方式选择参数化文件后运行。
版权归原作者 荼毒. 所有, 如有侵权,请联系我们删除。