目录
0 前言
1 全局变量和环境变量
1.1 设置全局变量和环境变量
1.2 使用全局变量和环境变量
1.3 注意数据类型问题
2 Header
3 Get和Post方法
3.1 Get方法
3.2 POST方法
4 集合Collections和请求Request(批量测试用例示例)
5 Tests
5.1 动态参数
5.2 测试脚本
6 Mock Servers
7 Cookies
8 Newman
本文面向具有一定的计算机网络基础、了解Postman的基本使用的读者。
在Environments模板里可以设置全局变量和环境变量
特别注意:
1、JS里面使用全局变量和环境变量,通过调用方法来实现
- pm.environment.get("variable_key");
- pm.environment.set("variable_key", "variable_value");
- pm.globals.get("variable_key");
- pm.globals.set("variable_key", "variable_value");
2、其他:通过两对花括号{{variable_name}}语法使用,注意选择对应的环境
会根据所设置的内容,原封不动的放入到使用的地方。 因此如果是字符串,不要忘记带引号!
若使用时候没有该变量值,则保留原来的内容,如若没有blog这个变量,使用{{blog}}时,则会传递一个为{{blog}}的值。
可在Console控制台里查看发送数据的请求头!
示例一
示例二
可以自行在Header模块中添加键值对,后者设置的值会覆盖前者
当使用POST方法时,Content-Type默认会根据Body里设置的相对应,例如选择JSON格式,则Content-Type会自动对应application/json
在URL上 ?后面接参数,多个参数之间用 & 符号
POST方法里的Body的参数类型
1、none 无参数
2、form-data 键值对,还可以上传文件(注意所上传文件需要在外部工作空间里)
3、x-www-form-urlencoded 键值对
4、raw 原始数据,包括Text、JavaScript、JSON(常用)、HTML、XML
5、binary 二进制文件
6、GraphQL 不太常用
设置允许读取外部工作空间权限
raw参数类型包括Text、JavaScript、JSON(常用)、HTML、XML
一个项目对应一个Collection,一个接口测试用例对应一个Request。
运行项目时,可以选择数据文件,作为接口测试用例的输入,步骤如下:
1、根据接口的输入参数和输出参数,编写接口测试用例。
例如注册用户接口,输入username和password参数,输出包括status状态值,编写如下mydata.csv文件内容
username,password,assert_value
chatu,123456,200
chatu,123456,400
,123456,400
chatu,,400
2、Body里使用 {{}} 读取到所上传文件里面的内容,JS里面以对象data的方式对待文件数据,其中data是对象名称(固定的),例如data.assert_value
注意:有无引号的情况,由于username和password字段值是接收字符串,所以本人加了引号,规范的写法应该是在创建mydata.csv中就该对username和password的用例设置字符串类型的数据
3、运行项目时,选择文件数据,上传后,点击Preview可查看所上传的接口测试用例
4、运行,可查看每个断言的情况
参考文档:Dynamic variables | Postman Learning Center
注意参数用{{$timestamp}},JS里用pm.variables.replaceIn('{{$timestamp}}')
全局断言:点击项目里面的Tests模块
局部断言:点击Request里面的Tests模块,在正确、错误、异常的测试用例情况下,按照接口返回的数据,设置断言
其余断言方法:
1、使用正则表达式,例如responseBody.match(new RegExp("'status':(.*?)"))
2、JSON提取器:JSON.parse(responseBody)
文档:Using variables | Postman Learning Center
Postman will store environment and global variables as strings. If you’re storing objects or arrays, remember to JSON.stringify()
them before storing, and JSON.parse()
them when you retrieve them.
Mock Servers实现模拟接口,可以返回接口数据
1、创建Mock Servers
(1) 配置接口路径和响应数据 (2) Mock Servers的名称
2、创建成功
(1) 环境里会自动新增该Mock的环境
(2)Collections里会自动新增该Mock的Collection,可在对应的接口的Default设置返回值
(3) Mock的使用和普通的接口使用方法一样
(4)url供其他项目使用,可复制Mock的url地址
分类:
(1) 会话Cookies 浏览器关闭,就失效
(2) 持久Cookies 依据Coookies的有效期限
步骤:
(1) 客户端第一次访问服务端,服务端返回Cookies数据;
(2) 客户端收到Cookies数据;
(3) 客户端在之后的请求中,会带上Cookies数据,去请求服务端。
示例:
1、点击Cookies,可查看当前没有Cookies数据
2、向服务端请求数据,服务端返回Cookies数据,响应数据如下 3、此时Cookies里新增这三个Cookies数据,下次再访问该服务器,则会自动带上Cookies数据。
运行命令 newman run
常用参数
-e 引用环境变量
-g 引用全局变量
-d 引用数据文件
-n 指定测试用例迭代的次数
示例
1、导出 测试用例、全局变量、环境变量、数据文件
2、命令行窗口执行命令
newman run testcase.json -e environment.json -g globals.json -d mydata.json -r cli,html,json,junit --reporter-html-export report.html
3、可以使用Postman+Newman+Jenkins实现持续集成,其中Jenkins作用: 持续、自动地构建/测试软件项目,监控一些定时执行的任务。