一、postman基本使用
1.1.简介
Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会经常使用。
1.2.特点
1).简单易用的图形用户界面
2).可以保存接口请求的历史记录
3).使用测试集Collections可以更有效的管理组织接口
4).可以在团队之间同步接口数据
1.3.使用
1).选择保存的目录
2).选择对应的接口和输入接口地址
3).地址栏
4).请求头
5).对应请求体,一般为json
6).请求返回结果
7).导出用例集
8).默认配置
9).导入用例集
二、postman的断言
2.1.简介
断言:让程序判断预期结果和实际结果是否一致。
2.2.特点
1).postman的断言是使用JavaScript语言编写的,写在'Tests'标签页里
2).Tests中的脚本在发送请求之后执行,会把断言的结果(PASS/FAIL)最终在TestResults'标签页中展示
2.3.常用断言
1).断言响应状态码(重点) Status code : Code is 200
//断言响应状态码为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm : postman的一个实例
test() : postmane实例的一个方法,有两个参数
参数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() : postmane实例的一个方法,有两个参数
参数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" 是预期结果!
pm.response.text() 实际结果
3).断言响应体是否等于某个字符串 (对象) Response body:ls equal to a string
//断言响应体等于某个字符串(对象)
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
pm : postman的一个实例
test() : postmane实例的一个方法,有两个参数
参数1:"Body is correct" 断言完成后,给出的提示信息
参数2:匿名函数调用
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);
});
pm : postman的一个实例
test() : postmane实例的一个方法,有两个参数
参数1:"Your test name" 断言完成后,给出的提示信息
参数2:匿名函数调用
var jsonData = pm.response.json(); 意思是
定义一个变量,名称叫 jsonData,值为:json格式的响应体数据
pm.expect(jsonData.value).to.eql(100); 意思是
postman 预期json格式的响应结果中 xxx(key)的值为 xxx 即获取为 键值对的值 key:value 中的value
value(键值对的键key)可以替换为:success、code、message、data
to.eql()中的值对应为:预期结果
对应键值对的value值
5).断言响应头 Responseheaders:Content-Typeheadercheck
// 断言响应头
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
pm : postman的一个实例
test() : postmane实例的一个方法,有两个参数
参数1:"Content-Type is present" 断言完成后,给出的提示信息
参数2:匿名函数调用
pm.response.to.have.header("Content-Type");意思是
postman响应结果中 响应头有"Content-Type"
"Content-Type" 预期结果
2.4.工作原理
三、postman的全局变量和环境变量
3.1.全局变量
1).概念
全局变量是全局唯一的,不可重复定义的变量
2).设置
2.1).手动设置
2.2).代码设置----pm.globals.set("var_name",value);
3).获取
3.1).请求参数中获取:{(var_name}查询参数、请求头、请求体中
3.2).代码中获取:var value=pm.globals.get("var_name");
3.2.环境变量
1).概念
1.1).一个变量只能属于某个环境,在某一个环境中变量不可重复定义
1.2).在环境与环境之间可以定义重复的变量
1.3).一个环境可以包含多个环境变量
1.4).常见环境分类:开发环境、测试环境、生产环境
2).设置
2.1).手动设置
2.2).代码设置---pm.environment.set("var_name", value);
3).获取
3.1).请求参数中获取:{(var_name}查询参数、请求头、请求体中
3.2).代码中获取:varvalue=pm.environment.get("var_name");