admin管理员组

文章数量:1567915

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、postman是什么?
  • 二、 接口是什么?
  • 三、 接口测试和接口测试的目的
    • 1.什么是接口测试
    • 2.为什么要进行接口测试
    • 3.接口测试重点
    • 4.接口测试分类
  • 四、postman进行接口测试
    • 1.HTTP知识
    • 2.增加断言
    • 3.编写一个测试实例
    • 4.sandbox
    • 5.请求方法
    • 6.cookie
    • 7.鉴权
      • (1)什么是鉴权
      • (2)鉴权方式
    • 8.cllection容器
      • 集合概述
      • Collection 常用API
    • 9. 变量
    • 10. 环境变量方法1实例
    • 11.全局变量方法二实例
    • 12.运行collection
    • 13.运行collection实例生成HTML测试报告
    • 14.postman导出python脚本
  • 5、postman中断言和抓包
    • 1.测试断言
    • 2.postman中充当代理进行app抓包
  • 总结

前言

本文为视频学习的截图记录,
用途:以方便以后学习翻阅
主要以图片的形式展现
这里附上视频链接:postman学习

一、postman是什么?

postman是一个HTTP客户端,用于发送请求和接收响应,是专门用于测试API的工具

二、 接口是什么?

IT 行业从 WWW 万维网时代 的 C/S、B/S 架构,到移动互联网时代的大前端时代,发展到云计算时代以 IaaS(基础架构即服务),PaaS(平台即服务),SaaS(软件即服务)为代表的云端架构,如今更是进入到万物互联的物联网时代,网络连接着我们生活的方方面面,而承载这些连接的连接点,就是网络接口,接口是不同网络应用之间联系、交互、相互作用的入口和桥梁。

如下图,是接口在软件系统中所处位置的示意图:

三、 接口测试和接口测试的目的

1.什么是接口测试

百度百科中:

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。


接口测试是测试系统组件间接口的一种测试,
主要用于测试系统与外部其他系统之间的接口,
以及系统内部各个子模块之间的接口。

2.为什么要进行接口测试

  1. 现在很多系统前后端架构是分离的,因为不同端(前段,后端)的工作进度不一样,所以我们要针对最开始出来的接口,以及需要调用其他公司的(银行,支付宝,微信,qq等)一些接口进行接口测试及验证数据,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
  2. 如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前移也叫 测试左移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是不是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要前后端定义好接口,那这时自动化就可以介入编写接口 自动化测试代码,手工测试只需要后端代码完成就可以介入测试后端逻辑而不用等待前端工作完成。
  3. 简单概括:
    ①.越底层发现bug,它的修复成本是越低的。
    ②.前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
    ③.检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。
    ④.如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
    ⑤. 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
    ⑥. 现在很多系统前后端架构是分离的,从安全层面来说:
    (1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
    (2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

3.接口测试重点

测试的重点是

  1. 检查接口参数传递的正确性
  2. 检查 接口功能实现的正确性
  3. 检查输出结果的正确性
  4. 检查各种异常情况的容错处理的完整性和合理性

保证系统的正确和稳定为核心,重要性主要体现为以下几个方面:
(1)能够提早发现 bug,符合质量控制前移的理念。
(2)接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。
(3)接口测试从用户的角度对系统接口进行全面检测。实际项目中,接口测试会覆盖一定程度的业务逻辑

4.接口测试分类

针对软件接口的分类一般有如下几种情况:

  1. 系统与系统之间的调用
    如微信向用户提供统一的对外接口,程序员调用接口完成基于微信的小程序等;
  2. 同一系统内部上层服务对下层服务的调用
    如一个软件程序一般分为表示层,业务层和数据层,表示层调用业务层的接口来完成自己的工作,而业务层又会调用数据层的接口来实现相应的业务等。

四、postman进行接口测试

1.HTTP知识

HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范。HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的。当我们没有指定端口访问时,浏览器会默认帮我们添加80端口。 需要注意的是,现在大多数访问都使用了HTTPS协议,而HTTPS的默认端口为443,如果使用80端口访问HTTPS协议的服务器可能会被拒绝。

HTTP 请求/响应的步骤:
客户端连接到Web服务器->发送Http请求->服务器接受请求并返回HTTP响应->释放连接TCP连接->客户端浏览器解析HTML内容

1、客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.baidu

2、发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

3、服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
4、释放连接TCP连接
若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

5、客户端浏览器解析HTML内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

GET和POST请求:

如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送。

GET请求和POST请求的区别:

1、GET使用URL或Cookie传参。而POST将数据放在BODY中。

2、GET的URL会有长度上的限制,则POST的数据则可以非常大。

3、POST比GET安全,因为数据在地址栏上不可见。

4、一般get请求用来获取数据,Post请求用来发送数据。

2)、http状态码

每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:

1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。

2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,

3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面

4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果

常见的几种状态码:
200: OK 当您的操作将在响应正文中返回数据时,出现此结果。
201: 资源成功创建和更新
204: No Content 当您的操作成功,但不在响应正文中返回数据时,出现此结果。
301: 表示要从这个接口重定向到另外的接口(出现较多)
304: Not Modified(重定向) 当测试实体自上次检索以来是否被修改时,出现此结果。
400: 本来api必须要的参数但没有提供时,会出现
401: 需要登录才能访问的接口,未登录时会报401
404: Not Found(客户端错误) 当资源不存在时,出现此结果。
405: Method Not Allowed(客户端错误)由于方法和资源组合不正确而出现此错误。 例如,您不能对一个实体集合使用 DELETE 或 PATCH。
412: Precondition Failed 客户端错误
413: Payload Too Large(客户端错误) 当请求长度过长时,出现此结果。
501: Not Implemented(服务器错误) 当未实施某个请求的操作时,出现此结果。
503: Service Unavailable(服务器错误) 当 Web API 服务不可用时,出现此结果。

本文标签: 学习笔记postman