一、postman介绍
1、postman是一个网页调试工具,也可以调试css、html等
2、postman操作环境:(32位、64位)
windows、linux、macos
3、Postman下载:https://www.postman.com/downloads/
二、postman安装
1、点击下载的安装包
2、无需登录,跳过
3、显示postman界面
三、postman的使用
1、介绍面板详情
2、主题更换:设置的图标Themes选择主题颜色
3、操作一个接口:
步骤:
(1)新建集合设置集合名字新建成功一个集合
(2)点击+号,显示接口的填写界面:请求方式接口url选择body选择请求参数格式([x-www-form-urlencoded)填写参数保存输入接口名称(自定义)保存集合中send发送接口查看响应体和响应头
(3)涉及的知识点:
请求
a、HTTP请求的四部分:URL、Method、Headers、Body都可以设置
b、Body请求体:
form-data
form-data是web表单默认的传输格式,编辑器允许你通过设置key-value形式的数据来模拟填充表单,你可以在最后的选项中选择添加文件。
x-www-form-urlencoded
这个编码格式同样是通过设置key-value的方式作为URL的参数
raw
一个raw请求可以包含任何内容,在这里你可以设置我们常用的JSON和XML数据格式
binary
这里可以上传发送视频、音频、图片、文本等文
c、响应体的三种方式查看:
Pretty方式,可以让JSON和XML的响应内容显示的更美观规整
Raw方式,显示的是最原始的数据,原生的
Preview方式,帮你把HTML页面自动解析显示出来
(4)依赖接口(下一个接口依赖于上一个接口)
关键点:cookies 一致
比如:先点击登录查询用户 保持cookies一致
(5)接口的变量(环境变量中引用变量值) 也叫接口参数化
关键点:请求体中设置变量{{变量名}}
a、使用{{}}花括号设置变量
b、添加环境变量 :设置变量和参数
c、选择添加的环境:在send发送运行
d、查看运行结果
(6) 导入接口json文件和导出就送文件
a、点击import 导入文件
b、点击集合三个小点Export选择导出版本Export编辑josn文件名
==点击保存
(6)接口的断言(tests)
一般断言:断言内容、断言状态码、断言时间
注释tests中的内容:ctrl+/
tests中的语句详解:
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("登录成功");
});
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
(7)多接口运行(集合中run)
a、选一个集合右键点击run
b、选中运行的集合、环境变量、执行次数、延迟秒数,上传文件,在run运行接口,
c、查看到运行完的接口,查看每个接口的参数:
d、统计:通过、失败是断言数
(8)参数化(通过csv文档设置变量)
1、创建一个csv后缀的表格:
2、输入内容:
如:(5个数据)
变量名1:变量名2
数据1
数据2
保存的格式是:csv
3、接口设置变量{{}},
如:变量名1,变量名2
4、在前置处理器中:添加一个环境变量
5、导入csv文档:集合run编写参数:选中集合,执行次数、选环境变量,导入文件(text\csv)
6、点击:run
(9)参数化(通过txt文档设置变量)
1、创建一个txt文本:
2、输入内容:
如:(5个数据)
变量名1:变量名2
数据1,数据12
数据2,数据22
保存的格式是:txt
3、接口设置变量{{}},
如:变量名1,变量名2
4、在前置处理器中:添加一个环境变量
5、导入csv文档:集合run编写参数:选中集合,执行次数、选环境变量,导入文件(text\csv),选择文档类型
6、点击:run
(10)关联接口
关联接口
拿上一个接口的返回参数,做下一个接口入参
省份接口:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince
城市接口:
post http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity
body byProvinceName 身份
场景:
步骤:
1、将省份接口、城市接口调通
2、将城市接口byProvinceName 的值设置成变量{{变量名}} 如:{{cs}}
3、到省份中的tests中:
通过 Response body: Convert XML body t a JSONObject 将省份接口的响应体转换成json格式
在根据格式提取内容:js=jsonObject.ArrayOfString.string,在设置环境变量来接收,通过索引确定一个省份
案例:
// 将响应体的内容转换成json格式,设置一个变量jsonObject
var jsonObject = xml2Json(responseBody);
// #通过jsonObject拿到对应所有的值,按照.ArrayOfString.string
js=jsonObject.ArrayOfString.string
// #将拿到的所有值添加到环境变量中,作为后面接口引用,通过索引指定一个省份
pm.environment.set("cs", js[5]);
4、执行下省份接口,查看环境变量中,是否有数据,有数据,下一个接口就能引用
5、执行城市接口就完成关联接口
11、token案例
网站:http://shop.duoceshi.com/login?redirect=%2Fdashboard
三个接口:
第一个接口:uiid接口(刷新页面就有)
http://shop.duoceshi.com/apis/auth/code
这个接会生成一个uuid:因为登录接口需要uuid
第二个接口:登录接口
http://shop.duoceshi.com/apis/auth/login (验证码:8888)
入参数:
{"username":"admin",
"password":"m8/V4E0dMvXY05SRF3Sk0BDWX6pKD5MklVEC7jdobE4lq7YJshDDTI+TCkMw/JPw08G2c2rYNf+eFoNlYTpH0w==",
"code":"8888",
"uuid":"code-key8f88acb37ab6419a9c8fcf4b9051427f"} 这个uuid就是第一个接口生成的
登录成功以后的接口响应体中,有一个tokne值
token:值
在第二接口的tests中:
如:
var jsonData = pm.response.json();
pm.environment.set("t",jsonData.token ); t是变量
第三个接口:
http://shop.duoceshi.com/apis/api/menus/build
登录后的接口的返回值token,在这个接口的请求头中携带,接口调通
如:authorization {{t}}
注意点:
接口的请求类型:
application/json
第一接口uiid提取的响应体中uuid,作为下一个登录接口的请求体;
第二接口登录接口的响应体中token,作为下一个接口的请求头;