1、简介:Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会经常使用。
2、特点:
官方网站:https://www.postman.com/downloads,可能会变。直接搜索postman会跳出官网下载
下载之后直接点击安装即可(无安装过程),安装之后直接打开
可以选择注册免费账号(邮箱、用户名、密码),也可以选择跳过登录直接使用
出现这个页面代表安装成功,可以正常使用了
导出:
导入:
Postman断言:
Postman断言工作原理:
常用的断言方法:
(1)断言响应状态码——Status code: Code is 200
// 断言响应状态码为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm: Postman的一个实例
test(): Postman实例的一个方法,有两个参数:
参数1:"Status code is 200" 断言完成后,给出的提示信息。
参数2:匿名函数调用。
pm.response.to.have.status(200); 的意思是:Postman的响应结果中,有状态码 200
(2)断言响应体是否包含某个字符串——Response body: Contains string
// 断言响应体中包含 xxx 字符串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm: Postman的一个实例
test(): Postman实例的一个方法,有两个参数:
参数1:"Body matches string" 断言完成后,给出的提示信息。
参数2:匿名函数调用。
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
意思是:
postman实例预期结果中包含 "string_you_want_to_search" 字符串
"string_you_want_to_search":是预期结果!
(3)断言响应体是否等于某个字符串(对象)——Response body: Is equal to a string
// 断言响应体等于某个字符串(对象)
pm.test("断言响应体等于某个字符串(对象)", function () {
pm.response.to.have.body("response_body_string");
});
pm.response.to.have.body("response_body_string") 意思是:
postman 的响应结果中有响应体为 "response_body_string"
"response_body_string" 是 预期结果
(4)断言JSON数据——Response body: JSON value check
// 断言 响应体中的 json 数据
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
var jsonData = pm.response.json(); 意思是:
定义一个变量,名称叫 jsonData ,值为:json格式的响应体数据
pm.expect(jsonData.value).to.eql(100); 意思是:
postman 预期 json 格式的响应结果中 xxx(key) 的值为 xxx
value可以替换为:success、code、message、data
to.eql()中的值对应为:预期结果
-----------------------------------------------------
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
可以简写为:
pm.expect(pm.response.json().value).to.eql(100);
(5)断言响应头——Response headers: Content-Type header check
// 断言响应头中Content-Type
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
pm.response.to.have.header("Content-Type"); 意思是:
postman 响应结果中响应头有 "Content-Type"
全局变量
语法:pm.globals.set("全局变量名", 全局变量值)
例子:
var age_tmp = 18 // 定义 js 语法的变量
pm.globals.set("glb_age", age_tmp)
语法:{{全局变量名}}
示例:{{glb_age}}
用在:查询参数、请求头、请求体中。
语法:var 接收变量名 = pm.globals.get("全局变量名")
例子: var ret_age = pm.globals.get("glb_age")
局部变量
语法:pm.environment.set("环境变量名", 环境变量值)
例子:
var age_tmp = 19 // 定义 js 语法的变量
pm.environment.set("env_age", age_tmp)
语法:{{环境变量名}}
示例:{{env_age}}
用在:查询参数、请求头、请求体 中。
语法:var 接收变量名 = pm.environment.get("环境变量名")
例子:var ret_age = pm.environment.get("env_age")
概念
介绍:
实现步骤:
以 A接口返回的数据,供 B接口使用为例:
安装newman插件(使用管理员权限打开终端):
安装命令:npm install -g newman
# 如果第一个不行就用下面这个(切换淘宝源)
安装命令:npm install -g newman --registry=https://registry.npm.taobao.org
注:安装 newman 插件之前必须先安装 node.js
安装newman-reporter-html(使用管理员权限打开终端):
安装命令:npm install -g newman-reporter-html
注:如果newman 插件安装是使用淘宝源进行安装的可以跳过这一步
使用newman生成测试报告:
newman run 测试用例集名.json -e 环境变量文件 -d 数据文件 -r html --reporter-html-export 测试报告名称.html
数据文件简介:
(1)CSV
(2)JSON
读取数据文件语法:
(1)请求参数(请求行、请求头、请求体)中,使用数据文件中的数据
(2)代码(断言、请求的前置脚本)中,使用数据文件中的数据
参数化操作步骤: