Postman基础
Postman基础
Tests - JavaScript
设置 环境变量
// 解析 response 中的 json
var jsonData = pm.response.json();
// 设置 access_token 环境变量
pm.environment.set("access_token", jsonData.access_token);
// 设置 access_token 集合变量
pm.collectionVariables.set("access_token", jsonData.access_token);
// 设置 全局变量
pm.globals.set("access_token", jsonData.access_token);
// 设置 临时变量
pm.variables.set("access_token", jsonData.access_token);
删除 环境变量
// 删除 环境变量
pm.environment.unset("access_token", jsonData.access_token);
在脚本中 使用变量
// 在任何范围内访问变量,包括本地
pm.variables.get("variable_key");
// 获取 全局变量 的值
pm.globals.get("variable_key");
// 获取 集合变量 的值
pm.collectionVariables.get("variable_key");
// 获取 环境变量 的值
pm.environment.get("variable_key");
正则表达式实现接口关联
var result = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log(result);
引用变量
-
{{变量名}}
-
请求body通过将变量的引用括在双引号中来访问变量
-
{ "customer_id" : "{{cust_id}}" }
动态变量(当输入{ 的时候,会自动显示三种随机变量)
应用:注册接口,注册一个账号后就不能重复注册
{{$guid}}:uuid-v4样式的guid
{{$timestamp}}:当前时间戳(Unix时间戳,以秒为单位){{$randomInt}}:0到1000之间的随机整数
RUN运行

参数化引用外部.csv/.json测试数据
第一行写变量的名称,变量之间用英文,分隔,后面每行写测试数据

获取csv文件中变量的值
// 在 Console 中打印 csv 文件中的 principal 值
var username = pm.iterationData.get("principal")
console.log(username)
断言
- 校验返回的
body是json格式
pm.test("response must be valid and have a body", function () {
pm.response.to.be.ok;
pm.response.to.be.withBody;
pm.response.to.be.json;
});
- 对提取的返回结果校验
// 校验 code 为 0
pm.test("response code must to be 0", function(){
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.equal(0);
});
//校验 msg 为 login success!
pm.test("response msg must to be login success!", function(){
var jsonData = pm.response.json();
pm.expect(jsonData.msg).to.equal("login success!");
});
// 响应结果的 长度
pm.test("response token_type length must to be 6", function(){
var jsonData = pm.response.json();
pm.expect(jsonData.token_type).to.lengthOf(6);
})
// 响应结果必须包含值的部分
pm.test("response must to be token", function(){
pm.expect(pm.response.text()).to.include("bear");
})
- 校验返回状态码是 200
pm.test("Status code is 200", function(){
pm.response.to.have.status(200);
})
- 断言状态消息
pm.test("Status code name is string", function(){
pm.response.to.have.status("OK");
})
- 断言响应时间
# 断言 响应时间 < 200ms
pm.test("Response time is less than 200ms", function(){
pm.expect(pm.response.responseTime).to.be.below(200);
})
- 校验Content-Type在返回头部
pm.test("Content-Type header is present",function(){
pm.response.to.have.header("Content-Type");
})
- 校验返回的头部 Content-Type 值为 application/json;charset=UTF-8
pm.test("Content-Type header is application/json;charset=UTF-8",function(){
pm.expect(pm.response.headers.get("Content-Type")).to.eql("application/json;charset=UTF-8");
})
- 断言接口返回的 json 数据中的某个值与环境变量中的值相等

pm.test("Response property matches environment variable", function () {
pm.expect(pm.response.json().form.username).to.eql(pm.environment.get("username"));
});
- 利用
数据驱动里面的参数断言

pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include(data.expected);
});
Postman其它知识
请求体Body
-
选择
form-data并添加键值,上传文件,请求头Headers会自动添加参数:Content-Type: multipart/form-data -
选择
x-www-form-urlencoded并添加键值,请求体为表单类型数据,请求头Headers会自动添加参数:Content-Type: application/x-www-form-urlencoded -
选择
raw→JSON并添加json格式字符串后,请求头Headers会自动添加参数:Content-Type: application/json
Postman生成测试报告
环境准备
-
安装
nodejs,安装后配置环境变量,在cmd中输入node -v检查安装版本 -
安装
newman# cmd 窗口输入 npm install -g newman newman -v # 检查 newman 版本 -
安装
html报告npm install -g newman-reporter-html
导出测试用例和环境变量
-
从
Postman导出测试用例,在Postman的Collections的文件夹下右键选择Export,在指定路径生成一个名为collection名称.postman_collection.json文件 -
从
Postman导出环境变量,在指定路径生成一个名为collection名称环境变量.postman_collection.json文件
生成测试报告
# cmd 窗口输入以下命令,可在当前 cmd 路径下生成测试报告 文件夹,里面的 .html 文件即为测试报告
# -r 表示生成测试报告
newman run 测试用例地址 [-d 测试数据文件地址 -e 环境变量地址 -g 全局变量地址] -r html
# 在 cmd 窗口直接展示测试报告
newman run 测试用例地址 [-d 测试数据文件地址 -e 环境变量地址 -g 全局变量地址]
Postman连接数据库
环境准备
-
安装
nodejs,Mysql -
安装
xmysql# cmd 窗口输入 npm install -g xmysql xmysql # cmd 窗口输入,验证 xmysql 是否安装成功
连接数据库
# cmd 窗口输入
xmysql xmysql -h 数据库IP地址 -u 用户名 -p 密码 -d 数据库名称
# 例如
xmysql xmysql -h localhost -u root -p 123456 -d student_database
# 如果提示“Error: ER_SUPPORTED_AUTH_MODE”(报错原因:msql8.0 连接使用的node-mysql模块不符合新版的规则)
# cmd 窗口,执行以下操作
mysql -u root -p
输入 数据库登录密码
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
flush privileges;
在Postman上连接数据库
xmysql默认端口号:3000
- 按条件查询(
get请求):- 按条件查询数据:在
url输入http://数据库IP地址:3000/api/数据库表名_where=(条件,eq,值),eq为相等条件 - 按条件查询多条数据:在
url输入http://数据库IP地址:3000/api/数据库表名_where=(条件1,eq,值1)~and(条件2,eq,值2) - 按条件顺序查询:在
url输入http://数据库IP地址:3000/api/数据库表名_fields=字段1,字段2
- 按条件查询数据:在
- 插入数据(
post请求):在url输入http://数据库IP地址:3000/api/数据库表名,在Body选择raw中输入要插入的数据,使用json格式 - 修改数据(
patch请求):在url输入http://数据库IP地址:3000/api/数据库表名,在Body选择raw中输入要修改的数据,使用json格式 - 删除数据(
delete方法):- 删除单条数据:在
url输入http://数据库IP地址:3000/api/数据库表名?条件=值 - 删除多条数据:在
url输入http://数据库IP地址:3000/api/数据库表名/bulk?条件=值1,值2,值3
- 删除单条数据:在

浙公网安备 33010602011771号