PostMan接口测试工具的安装与使用
主要特点
- 简单易用的图形化用户界面
- 支持保存接口请求的历史记录
- 使用测试集合Collection可以更有效的管理组织接口
- 支持团队之间同步接口数据
- 做接口功能性的测试
在Windows系统下的安装
下载地址
等待一会,postman安装成功
出现如下界面,点击关闭按钮即可
界面介绍
入门示例
使用Postman访问百度 http://www.baidu.com,并查看响应结果
- 设置请求方式
- 输入接口地址
- 点击发送请求
- 查看响应结果
get请求
Postman的基本用法
应用场景
- 前后端分离,后端看不到页面
- 服务端测试,验证不同情况下接口的返回结果是否符合预期
实现分析
- 请求方式分析(get、post、put、delete)
- 请求路径分析(path)
- 传参方式分析(url数据、表单数据、json数据)
实现步骤
- 设置请求方式
- 输入请求路径
- 设置请求参数
- 设置请求数据
- 点击发送请求
- 查看响应数据
用例管理
Postman对多个测试用例的管理,让测试进行更有序,易于管理
实现步骤
-
新建Collections(集合)
-
模块化管理
-
添加请求
向模块中添加请求
添加get请求测试
添加post请求
post提交json数据
需求:
1.请求项目的登录接口,请求数据
{
“mobile”: “13800000002”,
“password”: “123456”
}
接口地址:
http://182.92.81.159/api/sys/login
需求分析
- 请求方式为post
- 请求地址:http://182.92.81.159/api/sys/login
- 请求数据:
请求体【body==》raw】, {“mobile”: “13800000002”,“password”: “123456”}
请求头【header】Content-Type=application/json
实现步骤
post请求方式上传文件
断言
让程序判断预期结果和实际结果是否一致
postman断言使用的是javascript语法
查看响应状态码是否是200
全局变量与环境变量
全局变量和环境变量有相同的变量,如果请求中有全局变量和环境变量都有,环境变量优先级高
全局变量
全局变量是全局唯一的,不可重复定义的变量
设置全局变量
代码设置:
pm.globals.set("variable_key", "variable_value");
获取全局变量
var gloabl_var=pm.globals.get("variable_key");
请求参数中获取
{{参数名}}
环境变量
- 一个变量只能属于某个环境,在某个环境中变量不可重复定义
- 在环境与环境之间可以定义重复的变量
- 一个环境可以包含多个环境变量
- 常见环境分类:开发环境、测试环境、生产环境
设置环境变量
pm.environment.set("variable_key", "variable_value");
获取环境变量
var env_var=pm.environment.get("variable_key");
请求参数中获取
{{参数名}}
全局变量进行接口关联
需求
请求获取天气接口:
http://www.weather.com.cn/data/sk/101010100.html
获取天气接口返回结果中的城市名称
请求百度搜索接口
http://www.baidu.com/s?wd={{城市名称}}
城市名称即为天气接口获取并保存到全局变量中的数据
实现步骤
- 请求获取天气接口,设置全局变量
//获取返回数据
var jsonData=pm.response.json();
//获取返回数据中的city值
var city=jsonData.weatherinfo.city;
//设置全局变量
pm.globals.set("city", city);
2. 查看全局变量
3. 百度搜索接口调用全局变量
局部变量
添加局部变量
查看局部变量
手动修改局部变量值
代码中动态设置局部变量的值
//获取返回数据
var jsonData=pm.response.json();
//获取返回数据中的city值
var city=jsonData.weatherinfo.city;
//设置局部变量
pm.environment.set("env_city", city);
关联
应用场景
当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据
这时候就需要用到关联处理
实现方式
- 要获取某个请求的响应结果数据,可以通过在Test标签页中编写JavaScript脚本来实现
- 多个请求之间可以使用全局变量或环境变量来传递参数
- 获取某个全局变量/环境变量的值:{{var_name}}
批量执行测试用例
- 点击测试集合中的Run按钮,批量运行测试用例
- 弹出Collection Runner窗口,点击运行按钮
- 窗口测试结果
参数化
1. 定义数据文件
常用的数据文件格式有:CSV、JSON
2. 选择数据文件
在测试集运行Collection Runner窗口中,点击Select File按钮选择定义好的数据文件
3. 读取数据文件中的参数
1、方法一:请求参数可以通过{{var_name}}来引用
2、断言中的数据,由于是在Tests中编写脚本,并不能直接通过{{var_name}}来引用,可以通过内置
变量data来获取
//获取数据文件中的用户名参数
var username=data.username
通过内置变量data来获取
批量查询手机号归属地和所属运营商信息,并校验运营商数据是否正确
接口地址:
https://cx.shouji.360.cn/phonearea.php?number=13012345678
实现步骤
-
创建导入文件,文件格式为.csv
-
使用Notepadd++打开文件,修改文件编码方式为UTF-8编码,然后重新保存文件(解决数据乱码的问题)
-
请求设计
-
断言,判断返回的结果与预期结果
//获取数据文件中的用户名参数
console.log("运营商名称="+data.sp);
//断言
pm.test("校验运营商数据", function () {
var jsonData=pm.response.json();
//expect(实际结果).to.eql(预期结果)
pm.expect(jsonData.data.sp).to.eql(data.sp);
});
- 运行测试计划
- 运行结果
测试报告-NewMan
1. NewMan环境准备:node.js
Node.js的安装
传送门
2. 安装NewMan
npm install -g newman
查看newman是否安装成功,输入newman -v
安装 newman-reporter-html
cmd输入
npm install newman-reporter-html
安装html
3. 导出测试集合数据
导出测试脚本
导出环境变量
导出全局变量
4. 执行测试
切换到脚本所在目录
文件夹下文件:
执行命令
newman run 脚本 -g 全局变量 -r html
newman run test.postman_collection.json -g MyWorkspace.postman_globals.json -r html
5. 查看测试报告