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库,只有内置的一些库;

 

 

 

 

 

 

 

  

  

  

 

posted @ 2021-04-12 18:00  chunlimei  阅读(213)  评论(0)    收藏  举报