Postman

接口

接口测试-发什么回什么->https://postman-echo.com/post

接口简介

接口:就是软件提供给外部的一种服务。用作数据传输。 在硬件方面USB、投影机被称为接口,在软件方面统称API,如微信的支付和提现。(统称鉴权码,有token、key、appkey)

内部接口:开发人员自己开发的对自身系统提供的接口

外部接口:开发系统调用外部的,微信、支付宝,其它的接口

接口测试的本质:就是测试接口能否正常的交互数据,权限控制以及异常场景。

软件为什么需要接口

因为接口能够让内部的数据被外部进行修改

为什么要做接口测试

  • 现在很多系统都是前后端分离,开发的进度不一样,需要把一开始开发出来的接口进行测试
  • 基于安全考虑,前端有验证很容易绕过,直接请求接口
  • 测试推崇的是测试左移,即尽早测试。

接口测试的简介和分类

接口测试就是测试系统组件接口之间的一种测试

分类:

  • 测试外部接口:测试被测系统和外部系统之间的接口(只需要测试正例即可)
  • 测试内部接口:
    • 内部接口只提供给内部系统使用。(预算系统,承保系统)(只需要测试正例即可)
    • 内部接口提供给外部系统使用(测试必须非常全面)

接口测试的流程以及用例的设计

  • 拿到接口api文档(通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,入参,码
  • 编写接口用例以及评审
  • 使用接口测试工具Postman实现接口测试
  • Postman-+Newman+Jenkins实现持续集成,并且输出测试报告并且发送邮件,并且输出测试报告并且发送邮件

接口返回数据和JSON详解

  • json格式:三组数据
    • {error_code:0,msg:”0”,data:[]}
    • error_code:错误码
    • msg:对错误码的中文说明
    • data:真正的返回的数据
  • jsonj就是一种数据类型,整形,小数,字符串
  • JSON由两组数据组成
    • MAP对象,键值对
    • 数组

Postman界面介绍

  • Home主页
  • workspaces 工作空间
    • Collections 项目集合
    • ApiS api文档
    • Environments 全局变量
    • Mock Server 虚拟服务器
    • Monitors 监听器
    • History 历史记录

常见的请求头

Accept

常用,它的作用是:客户端接收的数据格式;

比方说你的参数值填写的是application/json,就说明浏览器所接收的数据是json类型的数据,当你加了Accept请求头之后,你会发现你得到的数据和你没有加Accept请求头的数据是完全不一样的。如果你没有加Accept这个请求头,你得到的数据可能就是一个简单的网页。Accept它可以影响你返回的数据。

X-Requested-With

它的作用是:异步请求;

如果对开发有一定的了解的话,前端里面有这样一个技术Ajax异步请求。现在很多的功能都会用到这个异步请求,比如说登录。

简单的举个列子:如果现在你想去上海,只有一条路的话,你只能走唯一的一条路。那么如果有两条路或者多条路,可以坐飞机,高铁,汽车等等。那么它们就相当于异步,也就是说你可以通过飞机到上海,也可以坐高铁到上海,这样通俗的理解异步请求。

异步请求的特点:无刷新。就是说登录的时候是需要进行页面跳转的,而异步请求它不需要跳转也可以做到这样的请求。

User-Aget

它的作用是:发送请求的客户端的类型;

比如说我们可以通过postman去发送请求类型,也可通过浏览器去发送请求等等,那么有的接口你通过非浏览器去请求它是无法通过的

Content-type

它的作用是:请求的报文格式;

Cookie信息;

有的接口需要登录之后才会生成Cookie信息,必须要保持登录的状态。这种情况我们就需要对Cookie信息进行管理。

Postman执行接口测试

请求页签

  • Params:get请求传参
  • authorization:鉴权
  • headers:请求头
  • Body:
    • post 请求传参
    • none 没有参数
    • form-data:既可以传键值对参数也可以传文件
    • x-www-from-urlencoded:只能够传键值对参数
    • raw:json,text,xml,html,javascript
    • binary:把文件以二进制的方式传参
  • pre-request-script:请求之前的脚本
  • tests:请求之后的断言
  • cookies:用于管理cookie信息

响应页签

  • Body:接口返回的数据
    • Pretty:以Json、html、XML…不同格式查看返回的数据
    • Raw:以文本的方式查看返回的数据
    • PreView:以网页的方式查看返回的数据
  • Cookies:响应的cookies信息
  • Headers:响应头
  • Test Results:断言的结果
  • 200是状态码 Ok是状态信息 681MS是响应的时间 343B是响应的字节数

环境变量和全局变量

可以在Environments那里设置不同情况的环境

比如开发环境、测试环境、生成环境

并且使用来使用你的环境

比如:https:///路径

然后再在右上角选择你需要的环境即可

环境变量:环境变量就是全局变量

全局变量:全局变量就是能够在任何接口里面访问的变量

接口关联

  • json提取器实现接口关联
    • 在请求页签:Tests中使用var 变量名=JSON.parse(responseBody),json提取器将得到数据提取成json格式,这样可以设置一个全局变量,然后使用
  • 使用正则表达式提取器实现接口关联
    • 在请求页签:Tests中使用var 变量名=responseBody.match(new RegExp(‘复制Raw并把Value改为(*?)’)),这样可以设置一个全局变量,然后使用(记得是变量名[1])

postman内置动态参数以及自定义的动态参数

  • 生成当前时间的时间戳
  • 生成0-1000之间的随机数
  • 生成速记GUID字符串

Postman
http://example.com/2023/06/24/Postman/
作者
TaskManagerOL
发布于
2023年6月24日
许可协议