Postman基础使用一

下载与安装

这个是postman的下载地址:https://app.getpostman.com/app/download/win64,我们下载完直接安装即可

使用过程详解

我们打开运行应用程序,出现一个登录页面,你可以去登陆,也可以不去登录,都可以使用该应用程序,不同的是,你登录之后,可以将你本次运行的结果保存到他们的云服务器上,当你在其他电脑上使用postman时候,登陆这个账号,都可以看到你之前的运行的接口
Postman基础使用一_第1张图片
之后我们就可以进入该应用程序的主页面了
Postman基础使用一_第2张图片
不熟悉的人乍一看感觉有点混乱,尤其使用过jmeter之后,下面简单说下各个模块的作用,我们简单将各个模块进行区域划分,如下图:
Postman基础使用一_第3张图片
A:测试管理区域,主要对请求进行分类管理,包括历史的请求,也可以把某些请求合并到一个分类里面
B:发起请求的配置区域,包括地址,请求参数,参数形式等等
C:接口响应的展示区域,结果和我们抓包的结果应该是一样的
D:一些快速功能的展示区域,例如导入、设置、新建、同步等等
那么,接下来详细说下具体的请求和返回到底都是一个什么东西么
1、在请求部分:
Params:用于在get请求的时候进行传参
Authorization:postman自带的鉴权功能,一般我在接口测试的过程中都是把它给关闭掉,这样在测试的过程中会方便很多
Header:请求头
Body:post方式的请求传参
none:没有参数
form-data:既有文件又有键值对
x-www-form=urlencoded:只能上传键值对
raw: 可以传递json、txt、html、js等形式的代码
binary: 把文件以二进制方式进行传输
GraphQL:我理解这是一种用于 API 的查询语言,也是一个满足我们数据查询的运行方式
Pre-request Script:接口请求之前的脚本,可以理解为你在发请求之前要做的一些操作
Tests:断言的代码,我们可以添加一些简单的断言,进行验证接口返回是否成功,后面会简单介绍几种断言的方式
Cookies:Postman的cookie管理器
Code:可以生成接口自动化脚本
2、在响应部分:
Body:返回数据中的主体数据
Pretty:以json格式展示接口返回的数据
Raw:以文本形式展示接口返回的数据
Preview:以网页的形式展示接口返回的数据
Visualize:自定义渲染显示,也就是对响应数据进行自定义加工后显示出来
Cookies:返回的cookie信息
Headers:返回的响应头信息
Test Result:响应断言接口返回来的信息
status:整个过程的状态码
time:整个过程的整体的消耗时间
Size:整个过程一共传递的字节数
Save Response:保存响应

简单介绍完界面上的一些功能之外,那么我们怎么去发送一个请求呢

首先我们可以在这里new一个或者点击+号新建一个请求
Postman基础使用一_第4张图片
之后,抓包,我发现我们接口的请求方式是post,接口请求的格式都是json,那么是我们可以使用如下方式去填写我们的内容
Postman基础使用一_第5张图片
这个时候点击send,接口返回
Postman基础使用一_第6张图片
表示我们需要添加cookie信息,也就是我们需要在headers里面添加抓包的cookies信息
Postman基础使用一_第7张图片
Postman基础使用一_第8张图片
再次点击send,会发现接口已经正常返回了数据
Postman基础使用一_第9张图片

环境变量设置

当我们在进行接口测试的时候,我们会发现,请求的接口地址里面有一些相似的地方,也就是每一次请求的域名都是相同的,而且这些都是我们都必须要写的,当我们有成千上万条接口的时候,那我们可以把这些写在环境里面,来方便我们进行调用
点击右上角的Manage Environments
Postman基础使用一_第10张图片
点击右下角的add
Postman基础使用一_第11张图片
环境名称我们可以写成测试环境
Postman基础使用一_第12张图片
继续添加一个变量名称 ip,以及对应变量的值,也就是接口名称前面的统一不变的url,然后点击add进行添加
Postman基础使用一_第13张图片
添加成功后会生成一个测试环境,同理需要添加一个生产环境
Postman基础使用一_第14张图片
当我们添加完成之后,对应环境变量该位置就存在了测试环境和生产环,如下:
Postman基础使用一_第15张图片
接下来我们将发送请求的地址以花括号的形式进行传递,选择对应的生产环境,点击send,即可出现对应的响应结果:
Postman基础使用一_第16张图片
当然,我们也可以设置globals全局变量,这里用到的不多,暂不过多介绍,特别要说明的是,全局变量的优先级是高于其他环境变量的设置的

接口关联

关联就是接口之间相互存在关系,比如说上一个请求的响应接口,作为下一个请求的参数传入
我们可以通过环境变量和全局变量设置参数关联,当然也可以通过tests设置进行参数关联,也就是这里的tests
Postman基础使用一_第17张图片
假设我们有三个接口,一个是加自选的接口,一个是取消加自选的接口,一个是查看自选的list,我们首先把某米集团加入自选,然后请求自选list,然后取消已经加自选成功的某米集团,因此,为了取消加自选成功的某米集团,我们需要在list接口中获取到已经加购成功的小米集团的symbol字段的值,也就是说我们可以在tests中使用symbol进行关联,首先我们在list接口中填写以下内容,用来获取环境变量:
//获取响应数据的json对象
var Data = pm.response.json();
//从响应数据中提取business_id
var symbol = Data.data.stocks[0].symbol
//设置business_id
pm.environment.set(“symbols”, symbol)
Postman基础使用一_第18张图片
然后运行发现没有报错,此时去查看环境变量,发现环境变量中已经种上了symbol
Postman基础使用一_第19张图片
这个时候我们在取消自选的接口中,使用花括号进行参数获取,点击send运行发现并没有报错:
Postman基础使用一_第20张图片
之后我们查看list接口,发现我们之前加的自选已经没有了
Postman基础使用一_第21张图片
响应断言
我们以list接口为例,添加小米集团自选成功后,采用以下方式进行断言
1、Response body:contains string(检验返回结果中是否包含某个字符串)
点击右侧的Response body:contains string,会在tests中出现如下图所示的代码
//检查的是整个响应结果是否包含“小米集团-W”
Postman基础使用一_第22张图片
我们将代码修改成这样:
pm.test(“结果正确”, function () {
pm.expect(pm.response.text()).to.include(“小米集团-W”);
});
我们可以看到没有报错,接口正常返回了我们想要的内容,并且Test Result中显示的是结果正确,这说明我们的断言是正确的
Postman基础使用一_第23张图片
Postman基础使用一_第24张图片
2、Response body:Is equel to a string(检验返回结果是否等于该字符串)
点击右侧的Response body:Is equel to a string,会在tests中出现如下图所示的代码,修改成这样:
pm.test(“Body is correct”, function () {
pm.response.to.have.body(“response_body_string”);
});
//响应结果必须和填写的字符串一致
也就是我们要把接口响应的内容全部写到如下位置,为了防止格式错乱,我们需要将接口返回的格式进行转义,如下,我们点击send,发现接口校验通过:
Postman基础使用一_第25张图片
3、Response body:JSON value check(检验返回结果中某个字段值是否等于某个值),此方法是应用的最多的一种方法
点击右侧的Response body:JSON value check,会在tests中出现如下图所示的代码,修改成这样:我们只校验code码
pm.test(“Your test name”, function () {
var jsonData = pm.response.json();
pm.expect(jsonData.error_code).to.eql(0);
});
同理我们校验error_code等于0
Postman基础使用一_第26张图片
4、Response header:Content-type header check(检验响应头是否包含某个值)
点击右侧的Response body:Content-type header check,会在tests中出现如下图所示的代码,我们需要注意的是,它校验的只是要检查的响应头,不是里面的值,指的是这个头部信息,如图可以看出,响应头中包含Content-Type这个字段,所以校验通过
Postman基础使用一_第27张图片
5、Response time is less than 200ms(检验响应时间是否少于200ms)
点击右侧的Response time is less than 200ms,会在tests中出现如下图所示的代码,我们直接修改校验小于10毫秒,点击send后,可以看出,接口总体响应时间大于84,所以校验失败
Postman基础使用一_第28张图片
6、Status code:code is 200(检验响应头是否包含某个值)
点击右侧的Status code:code is 200,会在tests中出现如下图所示的代码:
Postman基础使用一_第29张图片
我们点击send,发现会校验通过
Postman基础使用一_第30张图片

接下来介绍参数话设置的一种方式

postman参数化方式有很多种,主要可以通过csv,txt,json文档进行参数化,这里使用txt文档进行参数化
首先新建一个Test名称的Collection,以加自选接口为例,将参数clerk_id和shop_id进行参数化,
本地新建一个test.txt文件,内容如下,一共三条数据:
Postman基础使用一_第31张图片
然后我们新建一个001的collection,然后将该接口保存到这个collection里面,并且将需要参数化的参数写成如下形式:
Postman基础使用一_第32张图片
点击001旁边的小箭头
Postman基础使用一_第33张图片
点击run,会出来一个弹窗
Postman基础使用一_第34张图片
选择test.txt文件,以及对应的文件格式,iterations迭代次数3次
Postman基础使用一_第35张图片
点击run001,可以看到我们三个都通过了,因为没有添加断言,所以pass没有显示数据
Postman基础使用一_第36张图片

你可能感兴趣的:(接口测试,测试工程师)