postman
集合相当于项目可以包含很多请求/接口
#创建集合
点击左侧collections,点击加号+,点击blank collection即可新建空白集合,右键集合或者点击集合名右边的三个点可做在集合中添加接口或者重命名集合等操作
创建请求:右键集合-add request
响应部分:
pretty 美化响应体
html 网页形式展示响应体
text纯字符串形式展示响应体
json json形式展示响应体
xml xml网页形式展示响应体
auto postman自己选择形式展示响应体不用
raw 原数据形式展现响应
preview 预览,如果是网页响应显示网页
visualize 可视化一般用不上
cookie 响应的cookie
headers 响应的headers ,响应头
test results 显示测试结果,只有添加断言这里才有数据
右边还显示status响应状态码
times 响应时间
size 响应体大小
编辑请求json格式是不能敲回车
上传文件
上传文件方法一般为post,请求体类型为form-data,key的类型选择file,输入key的名称,value处点击后选择+new file fromlocal machine,即可上传本地文件
上传成功示例
关联接口
(1)如果接口之间是用cookie进行关联,择postman自动关联无需我们进行设置
下图开启为on后,cookie jar里的cookie不会被添加到请求的headers中
手动关联
将上一个接口的某一响应值参数手动复制到下一接口请求参数中即为手动关联,示例待添加
自动关联
(1)响应提取(可做接口关联)
方式一JSON:Var result = JSON.parse(responseBody);
Console.log(result.提取的字段名)
方式二正则表达式:
Var result = responseBody.match(new RegExp(‘xxxxxxxx(.?)xxx’));
Console.log(result[1]);
Result[1]即为所要的结果,若有多个匹配改变下标即可,正则匹配规则为把要匹配的值的左右边界都复制上,然后把要匹配的值用(.?)代替例如
Xxxxxsssdd要匹配sss 实现形式:responseBody.match(new RegExp(‘xxxxxxxx(.*?)dd’));
(2)全局变量
全局变量不受环境影响,在所有的环境都可引用
点击+号,出现Globals(全局变量)和New Environment(环境变量)
点击Globals,进入全局变量编辑页面
可以编辑变量的名称,类型,INITIAL VALUE(初始值),CURRENT VALUE(当前值)
同时输入INITIAL VALUE(初始值),CURRENT VALUE(当前值)时,引用的是CURRENT VALUE(当前值),点击Persist All -INITIAL VALUE(初始值)变为CURRENT VALUE(当前值)的值,点击Reset All
CURRENT VALUE(当前值) 变为INITIAL VALUE(初始值) 的值,编辑完后点击保存建立成功
引用全局变量时形式:{{全局变量名}}
以get请求为例,运行请求后点击左下角的Console可查看日志包含请求头,请求体,请求地址url,响应
(3)环境变量
环境变量相当于不同的服务器在此可以编辑不同的地址,上送的变量值
点击Environment图标后点击+图标出现New environment 即我们所建立的新环境
变量编辑页面各元素含义与全局变量相同
可以编辑变量的名称,类型,INITIAL VALUE(初始值),CURRENT VALUE(当前值)
同时输入INITIAL VALUE(初始值),CURRENT VALUE(当前值)时,引用的是CURRENT VALUE(当前值),点击Persist All -INITIAL VALUE(初始值)变为CURRENT VALUE(当前值)的值,点击Reset All
CURRENT VALUE(当前值) 变为INITIAL VALUE(初始值) 的值,编辑完后点击报错建立成功
引用环境变量时需先选择collection或者request接口的环境,选择环境需点击左上角的向下箭头,弹出环境列表,选择你建立的环境,然后在接口中引用,形式为:{{环境量名}}
以get请求为例,运行请求后点击左下角的Console可查看日志包含请求头,请求体,请求地址url,响应
(4)断言
也可以自己编写断言代码:
responseBody-响应体(字符串类型)
tests[‘断言消息’]=true/false
断言结果显示在test results窗口,通过为绿色,失败为红色
断言示例:
shiji=responseBody;
yuqi=‘{“age”:123,“name”:“zhangsan”}’;
if(yuqishiji){
message=‘用例通过’;
jieguo=true;
}else{
message=‘用例失败,预期为’+yuqi+‘实际为’+shiji;
jieguo=false;
}
tests[message]=jieguo;
或者这样写
shiji=responseBody;
yuqi=‘{“age”:123,“name”:“zhangsan”}’;
jieguo=yuqishiji; //shiji与预期相等结果为true否则为false
if(jieguo){
message=‘用例通过’;
}else{
message=‘用例失败,预期为’+yuqi+‘实际为’+shiji;
}
tests[message]=jieguo;
或者借用模板
校验响应码,响应时间,响应是否包含某些字符,响应字段值是否符合预期
pm.test(“Successful POST request”, function () {
pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});
pm.test(“Body matches string”, function () {
pm.expect(pm.response.text()).to.include(“string_you_want_to_search”);
});
右侧snippets点击即可查看示例断言
#数据驱动(即DDT)
应用场合,有大量的测试数据
postman支持txt,csv,json
步骤1:准备数据文件,先用excel编辑好,在把文件转为csv
(1)编辑excel文件
(2)将文件保存为csv文件,文件-另存为-csv类型
(3)右击保存后的csv数据文件,用记事本打开将保存格式修改为utf-8
步骤2:新建集合collection,在里面添加请求,将参数中的值写为{{变量名}},变量名为文件列名步骤3:将断言结果中的预期结果修改为data.列名
步骤3:运行集合(注意不是点击send运行接口请求)
点击集合名称右侧的三个句号。。。图标-run collection-点击select file,选择自己新建好的csv数据文件
选择文件后,如图,iterations(循环)的数字显示的是请求执行的次数即数据有多少行(排除了首行文件列名这一行),还可以点击preview来预览测试数据,delay代表延迟即执行完一次请求/用例后多久执行下一条
点击run…(run 集合名)运行集合,并显示结果,所有运行结果,成功,失败,跳过
#mock接口
Mock服务对于无法及时获得后端响应,后端未开发完成,后端不容易链接等情况可模拟后端响应或者返回想要的响应报文以检查前端处理逻辑
新建mock步骤:
1.点击左侧导航Mock Servers
2.点击导航右侧的+图标
3.编辑想要mock的接口的请求方式get/post,请求地址(只需 编辑ip之后的请求路径ip会在请求中以{{url}}代替),点击…图标显示编辑Request Body
编辑请求体,请求返回码,响应数据
4.可编辑多个接口
5.选择环境(是否将此mockurl添加到环境变量之中)
6.输入mock服务名称,勾选选择save the mock server url as an environment varible (保存服务地址为环境变量)
7.创建成功后可选择是否赋值mock url,分享别人访问你的mock接口时候点击 copy mock url ,把模拟的接口地址分享给他就能用啦
8.回到collection 可以看到mock建立的接口集合,在此可以编辑mock样例
9.接口右上方…图标点击后还可以添加接口样例
#4框架下
#postman操作数据库xmysql ,newman生成测试报告,不重复的id生成(待添加)
版权归原作者 永恒的救赎 所有, 如有侵权,请联系我们删除。