什么是Postman:
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件
Postman的安装大家去官网下载,傻瓜式安装即可。
我们直接步入主题,Postman的使用教程
一、首先我们来看一下postman页面的的基础功能
1.collection相当于一个文件目录,我们可以把同一个项目里的接口放在里面,也可以在里面再创建文件夹:
2.新建一个文件并添加一个请求:
创建好它是空的:
输入get请求,会自动选择参数,这里我用聚合数据里的一个天气接口,点击send,查询成功:
二、我又创建了一个请求,看看请求区域传参等等一些介绍:
1 Authorization:身份验证,主要用来填写用户名密码,以及一些验签字段,postman有一个helpers可以帮助我们简化一些重复和复杂的任务。当前的一套helpers可以帮助你解决一些authentication protocols的问题。;
2 Headers:请求的头部信息
3 Body:post请求时必须要带的参数,里面放一些key-value键值对
4 Pre-requerst Script:可以让你在 请求之前自定义请求数据,这个运行在请求之前,语法使用JavaScript语句。
5 tests:tests标签功能比较强大,通常用来写测试,它是运行在请求之后。支持JavaScript语法。postman每次执行request的时候,会执行tests。测试结果会在tests的tab上面显示一个通过的数量以及对错情况。这个后面会进行详解,它也可以用来设计用例,比如要测试返回结果是否含有某一字符串
6 form-data:,它将表单数据处理为一条消息,以标签为单元,用分隔符分开。既可以单独上传键值对,也可以直接上传文件(当上传字段是文件时,会有Content-Type来说明文件类型,但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。);post请求里较常用的一种,
文件上传:
7 x-www-form-urlencoded:对应信息头-application/x-www-from-urlencoded,会将表单内的数据转换为键值对;
8 raw:可以上传任意类型的文本,比如text、json、xml等,所有填写的text都会随着请求发送;
9 binary:对应信息头-Content-Type:application/octet-stream,只能上传二进制文件,且没有键值对,一次只能上传一个文件, 也不能保存历史,每次选择文件,提交;
三、导出和导入接口集
导出:
导入(这里我把之前的接口文件删除了):
导入成功
四、环境变量的配置:
postman支持很方便的设置环境变量以及全局变量,并可以一键切换不同环境
-
Global—全局
-
Enviroment — 环境变量
-
Local — 局部
-
Data ---- 数据
优先级从高到底 Data ---- > Local ---- > Enviroment ---- > Global
在postman里默认选择No Environment则不使用环境变量,仅适用全局变量
我们可以添加我们自己所需要的环境:
这样我们的环境就添加完毕,我们可以随意切换
这里的url相当于我们这里‘第一个环境’里的全局变量我们切换到’第一个环境’里输入‘{ {’ 就可以看见
我们输入{ {url}} send 试一试 看能不能访问({ {变量名称}}为固定格式)
访问成功
我们切换到No Environment 里在看看
如果我们想在本环境继续添加新的环境变量呢?
使用方法还是{ {变量名称}}
以上只是添加环境里的变量,如果我们要添加所有环境里的都能使用的变量呢?(全局变量)
这样我们的“mes”在每个环境都可以用
五、环境的导入与导出
导出:
导出的是一个json为后缀的文件
导入:
我们删除之前的环境 导入刚刚的环境来看看效果
导入成功
六、参数的传递(将返回值的某个数据设置为环境变量)
在某些时候,我们需要获取到一个变量,并保存下来,因为在后面我们会使用到。比如token,sign等信息这时候就需要用到tests区域了,使用其强大的js语法
下面我们实际操作一下:(这里我们还是用聚合数据里的天气预报接口,只是我这里用POST请求,刚好介绍一下post传参)
天气预报接口,获取city(城市)
这里我就打个比方,获取这个city,一般这种获取的都是动态的值,比如说登陆里的token值,每次登陆的token都不一样,我们可以把每次的token放在环境变量里(每次获取都是覆盖之前的值)。
var citydata= JSON.parse(responseBody);
注:定义一个citydata方法(获取city),把responseBody转为json字符串
pm.environment.set(“citydata”,citydata.result.city);
注:将citydata变量放置到当前环境变量里去
再次执行send后,点击右上角小眼睛
这样就设置成功了,使用还是固定格式{ {citydata}} 这里我就不演示了,上边有。
还有很多tests方法,这里我就简单说几种,需要时候可以找度娘哦!
获取变量
获取全局变量:pm.globals.get(“variable_key”);
获取当前环境变量:pm.environment.get(“variable_key”);
获取普通变量:pm.variables.get(“variable_key”);
设置变量
设置全局变量:pm.globals.set(“variable_key”, “variable_value”);
设置当前环境变量:pm.environment.set(“variable_key”, “variable_value”);
清空变量值
清空当前环境变量:pm.environment.unset(“variable_key”);
清空全局变量:pm.globals.unset(“variable_key”);
七、批量执行测试用例
返回200 运行正常
八、断言
判断响应的状态码
这里为了好区分 我们批量执行一下这两个测试用例对比一下效果
这里还有很多断言的方法,就不一一演示了,说说语法,操作的步骤和上边步骤一样。
判断请求返回中其它字段的值(或状态)
pm.test(“Body matches string”, function () {
pm.expect(pm.response.text()).to.include(“string_you_want_to_search”);
});
"Body matches string":此处的文字信息可以任意定义(填写),只要能够方便我们自己辨别是什么意思就可以了
“string_you_want_to_search”:此处填写的时我们需要判断的字段的值
获取json数据,并校对返回值的正确性
var res = JSON.parse(responseBody); // 先获取到返回的json数据
tests[“rsp的值是否为操作成功”] = res.rspInf == “操作成功”;
tests[“判断data的第二个元素的值是否正确”] = res.data.loginTime === 1548607006000;
判断响应时间
pm.test(“Response time is less than 200ms”, function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
判断返回数据的类型
var res = JSON.parse(responseBody); // 先获取到返回的json数据
tests[“判断loginTime的值的类型是否是number”] = typeof(res.data.loginTime) === “number”;
tests[“判断rsCd的值的类型师是否是string”] = typeof(res.data.loginTime) == “number”;
// 比较常用的集中类型:number、string、object、array、boolean、undefined
判断返回数据中是否存在某个元素
ests[“判断返回的元素中是否有data”] =responseBody.has(“data”);
tests[“判断返回的元素中是否有rsCd”] =responseBody.has(“rsCd”);
以上就是Postman的基本操作,希望对大家有所帮助,感谢阅读
转载:https://blog.csdn.net/weixin_44462582/article/details/117404909