飞道的博客

一篇文章让你掌握Postman

367人阅读  评论(0)

什么是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支持很方便的设置环境变量以及全局变量,并可以一键切换不同环境

  1. Global—全局

  2. Enviroment — 环境变量

  3. Local — 局部

  4. 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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场