在接口测试中,有些接口的请求参数具有唯一性,比如注册接口,注册一个账号后就不能重复注册了。
为了能重复执行这个接口,可以在请求前清理测试数据,也可以把请求的参数设置成一个可变的值(每次不一样),这样就可以每次都能注册成功了。
使用动态变量
postamn 提供可在请求中使用的动态变量:
- {{$guid}} :v4样式的 {{$guid}} A uuid-v4 style guid "611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4"
- {{$timestamp}}:当前时间戳(Unix时间戳,以秒为单位) The current UNIX timestamp in seconds 1562757107
- {{$randomInt}}:0到1000之间的随机整数 A random integer between 1 and 1000 随机整数
- 老版本(v7.1.1)只有上面三个动态变量可以使用,如果想使用更多的动态变量,可以更新到最新版(v8.3.1
- 版本查看,在右上角,setting 位置
当输入{ 的时候,会自动显示上面三种随机变量可以使用
更多随机变量可以参考官方文档(每个变量都有三个demo) https://learning.postman.com/docs/writing-scripts/script-references/variables-list/
postman使用教程7-参数化引用外部文件(txt/csv/json)测试数据
当同一个接口需要测试不同的参数时,需用到参数化的概念。postman支持从外部文件读取测试数据参数化,还不如写python 来发起的
进入Collection Runner 页面; 不同的版本,可能略有不同
- Environment 选择运行环境
- Iterations 迭代次数,也就是参数化数据的次数
- Delay 延迟毫秒,每次迭代中间的延迟时间
- Log Response 查看response返回的log日志
- Data 选择参数化文件(.txt/.csv/.json)
- Keep variables values 每次迭代后保持变量的值
- Run collection whitout using stored cookies 不保存cookies
- Svae cookies after collection run 运行完集合保存cookies
-
参数化登录
先准备需要参数化的测试数据,前面定义了2个变量username和password,于是在txt文本里面第一行写变量的名称,后面换行分别写需要传入的值
username,password test1,123456
获取变量;暂时没用到
要在“Test”或“Pre-request Script”代码中使用数据文件中的值,请使用iterationData,以提供对用于运行请求的当前数据文件记录的访问。
//get the 'value' field from the data file for this request run
pm.iterationData.get("value")
可以通过console.log()在控制台输出打印日志
var a = pm.iterationData.get("username");
console.log(a)