postman学习总结

一、Postman介绍
很好用的一款API/接口功能测试工具,很方便的插入数据,查看响应,设置检查点/断言,能进行一定程度上的自动化测试。
二、post请求
• form-data: HTTP请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。
• x-wwww-form-urlencode:HTTP请求中的application/x-www-from-urlencoded,会将表单内的数据转换为键值对。
• raw:可以发送任意格式的接口数据,可以text、json、xml、html等。
• binary:HTTP请求中的相Content-Type:application/octet-stream,只可以发送二进制数据。通常用于文件的上传。

三、前置脚本
前置脚本是与在发送请求之前执行的收集请求相关联的JS代码片段
语法类似于测试脚本 ,但响应对象不存在
在环境变量中定义变量后,可以通过前置脚本设置变量的值
可以执行HTTP请求,比如需要用户登录
目录集合的前置脚本,在每个请求执行前都会执行
四、测试脚本
测试脚本与前置脚本一样使用JS语法
在图中的右侧框中是常用的一些方法,点击后可直接显示到左侧的文本框中
与前置脚本不同的是,可以访问pm.response对象
目录集合的测试脚本,在每个请求执行后都会执行

五、postman主要使用场景
1.手工测试
2.半自动化测试(可以做一些请求数据的动态生成,用例结果做一些自动化代码的检查)可以做一些,但是很多情况下光靠他还不行,还得我们人的干预
为什么半自动化测试?
1、支持自动输入每个用例的输入数据(js代码),断言 ,运行集合,构建工作流(构建工作流可以在运行集合时,执行请求的顺序按照自己设置的来,而不是依次执行)
2、没有完整的用例管理系统、只有API与文件夹组成,能完成简单的测试用例,如果用例步骤较多,编写会变得困难。不支持环境初始化或清除功能。而且受制于沙盒的限制,不能引入第三方测试库,不能自定义测试方法。

六、集合
1.运行方式:标题栏runner按钮、newman命令行、monitor定时运行
2.运行参数:
Choose a collection or folder
这是要运行的集合或文件夹。运行集合时,集合中的所有请求都按照它们在主应用程序中显示的顺序发送。这意味着运行每个文件夹时会顺序执行文件夹内的每个请求。选择文件夹时,仅执行该文件夹,并且仅发送文件夹内的请求。但是,我们可以在使用setNextRequest()方法时更改顺序以更接近镜像工作流。
Environment
集合运行时使用的环境变量。
Iterations
该参数配置我们的集合将被运行的次数。通常通过使用不同的测试数据运行多次,从而来确保API的稳定性。
Delay
集合运行中每个请求之间的间隔(以毫秒为单位)。
Log Responses
限制集合运行时的响应日志记录。默认情况下,会记录所有响应以进行调试。对于大型集合,可以更改此设置以提高性能。
Data
提供用于集合运行的数据文件。
Keep Variable values
默认情况下,首次打开Collection Runner时会检查Keep variable values值,如果不希望在运行期间更新变量,要取消选中“Keep variable values”复选框。在这种情况下,在Collection Runner中修改的任何变量都不会影响Postman主应用中对应的环境变量值,在Collection Runner中做的任何修改都会在运行完成后恢复它原始的值。
在选项中选中了Keep variable values,在Collection Runner环境(或全局变量)中的任何变量变化都将反映在Postman主应用程序窗口中。如果我们再次运行该集合,会发现它现在会失败。
3.运行集合、查看结果、构建工作流、newman命令行、与jenkins集成

与jenkins集成 newman命令行 0为正常非0异常

变量类型:全局变量、集合变量、环境变量、数据变量、本地变量、动态变量
访问方式:{{xx}}

豆瓣登录、访问我的豆瓣、登出实例:
登录:
在这里插入图片描述
断言:
在这里插入图片描述
我的豆瓣及断言:

登出:
在这里插入图片描述
pm.test(“Body matches string”, function () {
var text = pm.response.text()
var re = /<a[>]*href=[’"]([^"]*)[’"][>]*>(.退出.)</a>/g;
//var str = document.getElementsByTagName(‘html’)[0].innerHTML;
var arr = “”;
while (re.exec(text) != null) {
arr += RegExp.$1;//如果是RegExp.$1那么匹配的就是href里的属性了!RegExp.$2是value值
}
arr = arr.split("?")[1]
pm.globals.set(“arr”, arr);
});
在这里插入图片描述

问题总结:
1.学习postman时测试了一下豆瓣网站的接口,发现登录后再次登录报403错误,手动登出后再次登录成功,想模拟一个登录、操作、登出的流程,第二次登录还是报403,后发现登出网址的参数,https://www.douban.com/accounts/logout?source=xxx&ck=xxx,source和ck每次登录后都会改变,我先访问https://www.douban.com/accounts/logout,得到这个页面的代码,解决方法是用正则表达式获取到这一行,然后获取href属性,截取?后面的部分,设置成全局变量,传到url的参数中。
2.404 not found:接口地址错误
405 not allowed错误:可能是接口地址错误(一定要加http/https)
405 method not allowed错误:请求方法错误,如post用的get

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值