postman从入门到精通-上
第1节 postman介绍
1、postman的使用场景
①开发接口的时候,需要调用接口,以便调试;
②测试的时候,需要调用接口,通过不同的参数去测试接口的输出;
③接口调用需要保存下来,反复运行;
④支持在运行过程中增加断言(检查点)
2、支持macOS、Windows、Linux操作系统
3、相关资料


第2节、postman安装
1、postman的各种版本
①chrome插件版本-------先安装chrome浏览器,然后再在chrome浏览器的app store里面,去找postman app,找到后以chrome浏览器拓展的方式去安装它;已不维护了
②native版本---------------本地安装的版本,不依赖于chrome浏览器,具有更好的拓展性,推荐使用
2、下载安装
下载地址:https://www.postman.com/downloads/
一般用的是Windows版本,下载时注意需要的是64位的还是32位的

----->双击图标,自动安装------->免费用户,不需要登陆或注册,可直接进入app

第3节、chrome app和native app的区别
①Cookies
native版本可以直接操作cookies,chrome版本需要安装拓展;
②Build-in proxy(构建代理)
native版本自带proxy,可以用来抓包;
③Menu bar(菜单栏)
native版本有菜单栏,chrome版本没有菜单栏;
④Restricted headers
有一些headers在chrome app上是受限的(很难伪造自己的身份),比如Origin header and User-Agent header
⑤Don't follow redirects option(不去跟随重定向)
native版本才有这个选项
⑥Postman console(console用于写断言)
native版本自带
第4节、postman的更新
1、postman默认自动更新

all---静默更新,感知不到就更新完了
minor fixes---只有大版本才会提醒更新,然后可以手动确定是否需要更新
None不更新
第5节、发送第一个api请求
1、测试对象v2ex的api
文档:https://www.v2ex.com/p/7v9TEc53
api地址:https://www.v2ex.com/api/topics/hot.json

2、区域
这块区域的内容是请求

这块区域的内容是响应

api的返回结果是json文件,从Headers的Content-Type中可以看出

Pretty看的更清楚一点,会按照语法高亮的模式进行语法高亮
Raw,结果的原始内容
3、postman和v2ex服务器之间的交互过程

在postman上配置好---->点击发送按钮,将请求发送给v2ex服务器---->v2ex服务器根据api接口请求,在数据库或缓存里面找到对应的数据,并将其封装成json的字符串,发送回postman---->postman对响应数据进行语法高亮、将header拿出来等操作,并将其显示出来。
第6节、http请求
1、定义
postman仅支持http协议,这门课程所有的接口都是基于http协议的,没有其它协议的接口;
http消息是服务器和客户端之间交换数据的方式;
有2种类型的消息:
请求:由客户端发送,用来触发一个服务器上的动作;
响应:来自服务器的应答;
参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Messages
2、http请求的构成
http请求由3部分构成:①起始行②headers③body

3、http请求的起始行

起始行包含3要素:
①一个HTTP方法,一个动词(GET、POST、PUT)或者一个名词(HEAD、OPTIONS),描述要执行的动作;
②请求目标,通常是一个URL,或者协议、域名和端口的绝对路径;
③http版本,定义剩余报文的结构;
URL这3个字母分别代表什么意思
4、http请求的headers

http请求的整个headers是一行不区分大小写的字符串,这一行可以相当长,由key:value的形式组成;
实际上heads可以做配置用,可以把它们当成配置项,这一行里面可以加无数个配置项,因此heads很灵活,及具有扩展性;
5、http请求的body
不是所有的请求都有一个body,例如获取资源的请求,GET HEAD DELETE OPTIONS,通常它们不需要body;

POST请求一般都是有body的。
第7节、http响应
1、http响应的构成
http响应由3部分构成:①状态行②headers③body

2、http响应的状态行
http响应的起始行是状态行。包含以下3部分信息:
①协议版本,通常是HTTP/1.1;
②状态码:表明请求是成功或失败,常见的状态码是200、404、302;
③状态文本:一个简短纯粹的信息,通过状态码的文本描述,帮助人们理解该http消息;



状态码是2和3开头的是成功的,4开头的不一定是bug,说明你的请求可能有一些问题,没有鉴权或者提供的参数不对,5开头的一般都可以放心大胆地提bug。
3、http响应的headers
http响应的headers和请求的headers形式上是一样的,都是key:value的键值对表示一些配置信息,请求的headers是告诉服务器我想要什么,响应的headers是告诉客户端我已经做了什么,你必须做什么;
响应的header里面可以设置客户端的cookie;

4、http响应的body
不是所有的响应都有body,如201或204,通常不会有body;
第8节、增加断言
1、断言
断言是预期结果和实际结果之间的判断;
如果预期==实际,用例通过,写到报告里;
如果预期!=实际,用例失败,写到报告里;

自动化测试用例和普通的测试用例,都有一个3A原则:
- Arrange: 测试用例执行之前需要准备测试数据,包括需要输入的数据及存量数据;
- Act: 通过不同的参数来调用接口,并拿到返回;
- Assert: 必须做断言,否则用例就没有任何意义了;
写测试用例一定要有断言,断言一般在响应里面加断言,一般对状态码和body做断言,一般不对headers做断言;

2、postman的test功能,用JS脚本设置如下
①设置全局变量(token)
②设置环境变量(可以通过不修改脚本,只修改环境变量的方式,做到定制化的配置,使脚本既能在测试环境下运行,也能在正式环境下运行)
③拿到请求的相应,并进行处理(如把字符串转换成JS对象)
④定义测试检查点(断言)

3、实战:第一个postman用例

第9节、postman的sandbox
1、sandbox是postman中运行一些JavaScript代码的地方;
sandbox比较隔离、独立,对其他的东西没有任何的影响;

2、sandbox的作用:
①引用公共库
②操作环境变量和全局变量
③动态变量(可忽略)
④操作cookie
⑤获取和查看请求及响应
⑥读取数据文件
??????????
第10节、ui测试
1、由于postman的sandbox给我们提供了一些额外的功能,所以可以用postman做一些ui测试(交互非常弱的ui测试,静态的检测,如页面上产品数量);
用postman进行ui测试的思路:
发请求去拿到网站的响应----->json数据或者完整的html网页----->解析html标签,判断一些元素是否存在
目的:快速检查ui是否正确
2、用postman做ui测试会用到的库
Cheerio
https://cheerio.js.org/(cheerio的相关介绍)

??????????
3、测试用例
断言http://www.itest.info/courses这个页面出现4个课程


4、总结
postman可以做ui功能测试
①前提是大家的javascript代码功底不错;
②熟悉类似于jquery的操作;
postman可以做ui功能测试的局限:
①交互能力一般;
②无法处理ajax请求;
③sanbox中无法使用更多的javascript库,只有内置的一些库;

浙公网安备 33010602011771号