10.Postman 运行collection(运行时使用环境变量、全局变量、data数据)
Postman 运行collection
Postman中文文档——使用数据文件(Working with data files)
https://www.jianshu.com/p/9babfa0cbee2
- 初始化接口请求
- 接口请求地址已设置好变量:
https://www.v2ex.com/api/nodes/show.json?name={{node_name}}
- 变量node_name:已设置环境变量和全局变量
- 断言:在tests编辑两个断言,一个是状态码200,一个是响应数据的name字段=变量node_name的值
- 接口请求保存到collection里面
- 点击save按钮,打开保存页面
- 编辑请求的名称和描述
- 创建新的collection文件夹(也可以选择已有的文件夹)
- 创建collection后,选择该collection
- 点击save to XXX(collection名称)
Collection保存成功后,可以在postman-collection面板上找到,如下图:
运行collection
1.运行界面文字说明
运行界面部分功能说明:
Iterations:运行几次
Delay:每轮运行的间隔时间,默认0ms
Log response :请求日志,保持默认 fror all requests(所有的请求都记录日志)
Data:选择测试数据
Run v2ex:运行名称为“v2ex”的collection
2.变量使用环境变量时运行
对应的tests断言内的node_name要设置成获取环境变量,断言才会通过
运行collection时选择环境变量(环境变量node_name=python):
运行结果:
运行结果2个断言都通过
- 变量使用全局变量时运行
对应的tests断言内的node_name要设置成获取全局变量,断言才会通过
运行collection时选择no environment(此时默认是使用全局变量node_name=php)
运行结果:
3.数据data驱动测试
Data数据文件常用格式:json、csv、txt三种格式,一般常用json格式
Json格式数据文件编写:
格式:[{“变量名1”:” 变量名1的值”},{“变量名2”:” 变量名2的值”}]
文件格式:文件名.json
运行collection时选择no environment,然后选择data文件,如下图:
运行结果:
总结说明:
断言部分跟 Postman 隔离开的,在断言部分不能直接获取 Postman 中的变量值,运行是会提示变量未定义,此时需要使用pm.environment.get("变量")、pm.globals.get("变量 ")、data["变量"]来获取postman里面的变量值
常见错误:
- 变量未定义:
使用data数据运行时,tests的断言要记得从postman的data数据内获取,语法:变量名=data[“测试数据文件内的变量名称”],否则会出现node_name未定义而运行失败的情况,如下图:
- 变量获取错误
Tests断言使用从postman的环境变量取值,而运行collection时选择no environment(使用全局变量),导致变量值与实际运行结果的值不一致,运行结果fail