Postman简介及接口测试流程(小菜鸟攻略)

2023-05-16

目录

前言

一、常见接口

二、前端和后端

三、什么是接口测试

四、接口组成

1、接口说明

2、调用url

3、请求方法(get\post)

4、请求参数、参数类型、请求参数说明

5、返回参数说明

五、为什么要做接口测试

本章主要介绍如何使用postman做接口测试。

六、接口测试流程

6.1界面介绍

2、接口管理区

3、环境管理区

4、接口设计区

5、Collection请求集(测试集)

测试集的功能操作

6、环境变量和全局变量

Params

7、请求设计

7.1 Postman发送各种格式请求数据的请求方法(注意:选择不同的请求可是,会自动在Header中添加Content-Type信息 )

7.2 tests断言示例 

七、postman接口测试实例

1、发送一个get请求的方法

2、发送一个post请求实例

3、使用postman批量发送请求


前言

首先,什么是接口呢?

接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。

系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。

程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。

一、常见接口

1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;

2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;

二、前端和后端

在说接口测试之前,我们先来搞清楚这两个概念,前端和后端。

前端是什么呢,对于web端来说,咱们使用的网页,打开的网站,这都是前端,这些都是html、css写的;对于app端来说呢,它就是咱们用的app,android或者object-C(开发ios上的app)开发的,它的作用就是显示页面,让我们看到漂亮的页面,以及做一些简单的校验,比如说非空校验,咱们在页面上操作的时候,这些业务逻辑、功能,比如说你购物,发微博这些功能是由后端来实现的,后端去控制你购物的时候扣你的余额,发微博发到哪个账号下面,那前端和后端是怎么交互的呢,就是通过接口。

前面说的你可能不好理解,你只需记住:前端负责貌美如花,后端负责挣钱养家。

三、什么是接口测试

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

上面是百度百科上说的,下面才是我说的哈哈哈哈~~

其实我觉得接口测试很简单,比一般的功能测试还简单(这话我先这样说,以后可能会删O(∩_∩)O哈!),现在找工作好多公司都要求有接口测试经验,也有好多人问我(也就两三个人)什么是接口测试,本着不懂也要装懂的态度,我会说:所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。

我为啥说接口测试比功能测试简单呢,因为功能测试是从页面输入值,然后通过点击按钮或链接等传值给后端,而且功能测试还要测UI、前端交互等功能,但接口测试没有页面,它是通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果,所以它只需测入参和出参就行了,相对来说简单了不少。

四、接口组成

接口都有那些部分组成呢?

首先,接口文档应该包含以下内容:

1、接口说明

2、调用url

3、请求方法(get\post)

4、请求参数、参数类型、请求参数说明

5、返回参数说明

由接口文档可知,接口至少应有请求地址、请求方法、请求参数(入参和出参)组成,部分接口有请求头header。

标头 (header):是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔,一般存放cookie、token等信息

header和入参有什么关系?它们不都是发送到服务器的参数吗?⬇⬇⬇

首先,它们确实都是发送到服务器里的参数,但它们是有区别的,header里存放的参数一般存放的是一些校验信息,比如cookie,它是为了校验这个请求是否有权限请求服务器,如果有,它才能请求服务器,然后把请求地址连同入参一起发送到服务器,然后服务器会根据地址和入参来返回出参。也就是说,服务器是先接受header信息进行判断该请求是否有权限请求,判断有权限后,才会接受请求地址和入参的。

五、为什么要做接口测试

大家都知道,接口其实就是前端页面或APP等调用与后端做交互用的,所以好多人都会问,我功能测试都测好了,为什么还要测接口呢?在回答这个问题之前,先举个栗子:

比如测试用户注册功能,规定用户名为6~18个字符,包含字母(区分大小写)、数字、下划线。首先功能测试时肯定会对用户名规则进行测试时,比如输入20个字符、输入特殊字符等,但这些可能只是在前端做了校验,后端可能没做校验,如果有人通过抓包绕过前端校验直接发送到后端怎么办呢?试想一下,如果用户名和密码未在后端做校验,而有人又绕过前端校验的话,那用户名和密码不就可以随便输了吗?如果是登录可能会通过SQL注入等手段来随意登录,甚至可以获取管理员权限,那这样不是很恐怖?

所以,接口测试的必要性就体现出来了:

①、可以发现很多在页面上操作发现不了的bug

②、检查系统的异常处理能力

③、检查系统的安全性、稳定性

④、前端随便变,接口测好了,后端不用变

常用的接口测试工具主要有以下几种:

Postman: 简单方便的接口调试工具,便于分享和协作。具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档, 接口监控等功能;

JMeter: 开源接口测试及压测工具,支持Linux及无界面运行;

LR: 商业版接口性能测试工具,简单易用,功能强大;

SoupUI: 开源,WebService接口常用测试工具,也可以测试Rest接口及接口安全。

本章主要介绍如何使用postman做接口测试。

六、接口测试流程

6.1界面介绍

1、工具栏 

New: 新建,可以新建Request请求,Collection请求集,环境等等

Import: 导入,可以导入别人导出的请求集

Runner: 运行一个请求集(批量执行)

Invite: 邀请(需要注册,邀请进行协作)

同步图标:(需要注册,同步你的项目到云端)

抓包图标:抓包/捕获请求,用于开启Postman代理, 手动设置代理(或手机代理)后可抓包/录制请求

设置图标:Postman设置功能

消息图标:官方及协助消息

收藏图标:我的收藏(需要注册)

云端图标:用户云端数据(需要注册)

2、接口管理区

History: 请求历史记录,可以查询到之前的请求记录

Collections: 接口集,相当于一个接口项目或测试计划,接口集中可以建立无限极子文件夹,用于对接口进行分组管理

3、环境管理区

什么是环境????

环境切换:用于切换环境

环境预览:用于快速预览环境中的所有变量

环境管理:用于添加修改环境及环境变量,以及全局变量

4、接口设计区

接口设计区可以通过上方tab边上的+号,新建多个请求。接口设计区从上到下分为请求区和响应区

①请求区

请求地址行:可以选择请求方法(GET/POST/...),填写请求地址,发送请求和保存请求到测试集

请求数据区:分为授权,请求头,请求数据,请求发送前执行的脚本(用于准备数据),请求结束后执行的脚本(用于断言)

②响应区

响应内容(body):可以查看Pretty(美化格式),Raw(原始格式),Preview(HTML预览格式)

响应(Cookie)

响应头(headers)

测试结果(Test Results):对应请求中Tests中设置的断言

5、Collection请求集(测试集)

请求集是Postman中接口管理的一个"整体"单位,运行、导出、分享等都是基于请求集的

①新建请求集:New按钮-->Collection 或 直接点击请求集列表上方的新建请求集按钮

授权:请求集及其子文件夹下的接口统一使用该授权,不用每个接口再都单独设置一遍

请求前脚本:请求集的每个接口公用的请求前脚本

请求后断言:请求集每个接口公用的请求后脚本

请求集变量:请求集中公用的一些变量

②新建子文件夹:子文件夹的属性中同样拥有描述,授权,请求前脚本,和请求后断言(没有变量,一个请求集的变量统一管理),实现了不同范围(Scope)的Fixture功能。

③测试集导出:测试集可以导出并发送给别人(不携带环境信息),别人通过导入来使用你的接口

④测试集分享:测试集直接分享给别人(双方都需要注册)

⑤添加请求:通过测试集add request 添加请求,这个请求包含于这个测试集里。

测试集的功能操作:

 

6、环境变量和全局变量

环境管理中还可以点击“Global”添加全局变量,环境变量只有当选择了该环境时才生效,全局变量在任何环境中都生效,测试集中的变量只在当前测试集生效,当测试集变量,环境变量,

全局变量有重复的变量名时,优先级为:环境变量>全局变量>测试集变量。

添加环境变量:设置-add-环境变量信息填写

添加全局变量:设置-Global-全局变量信息填写

我们可以环境中设置多个变量,以供在请求中使用。

环境变量使用方法: 选择环境,在请求URL或者请求Body里使用{undefined{变量名}}来使用环境变量,变量可以在请求Body的各种格式中使用,但不能直接在请求前脚本(Pre-request Script)和请求后脚本(Tests)中使用。

Params:

当请求URL中参数很多时,不方便进行添加和查看,可以点击URL输入框下的Params按钮,以表格的方式添加变量及值,从表格添加后,变量和值会自动添加到URL中。

7、请求设计

授权:如果接口需要授权,可以在该页面设置授权方式(type)和授权信息

Header:请求头,可以设置请求类型(Content-Type)和Cookie

Body:请求数据

form-data:混合表单,支持上传文件 ;x-www-form-urlencoded:文本表单;raw:原始格式,支持JSON/XML格式(后面可选择) ;binary:二进制格式,用于发送二进制数据流

Pre-request Script:请求前脚本,Javascript语法,用于在发送请求前生成一些动态数据或做一些处理

Tests:请求后脚本,Javascript语法,用于请求返回后做一些处理或断言结果

7.1 Postman发送各种格式请求数据的请求方法(注意:选择不同的请求可是,会自动在Header中添加Content-Type信息 ):

form-data:混合表单,支持上传文件 ;

x-www-form-urlencoded:文本表单;

raw:原始格式,支持JSON/XML格式(后面可选择) ;

binary:二进制格式,用于发送二进制数据流

form-data混合表单格式传参示例(上传文件-选择file类型,传文本选择text类型):

x-www-form-urlencoded(文本表单)传参示例:

 raw:原始格式,支持json和xml格式传参示例:

 

7.2 tests断言示例 

 

 

七、postman接口测试实例

1、发送一个get请求的方法:

选择get请求方式,输入要请求的url,传参方式以json为例,选择raw再选择JSON,然后将参数填入请求参数区,点击send发送请求,在响应区即可看到返回结果。如下

 

2、发送一个post请求实例:

选择post请求方式,输入要请求的url,传参方式以混合表单为例,选择form-data,然后将参数名称和对应的值填入参数区,点击send发送请求,在响应区即可看到返回结果。如下

 

3、使用postman批量发送请求:

Runner:批量执行测试集

支持设置迭代次数

支持加载csv或json、txt类格式测试数据

使用实例:

①新建一个Collection,比如课堂练习,新建请求(add requests)如登录,选择POST方法,填入URL,请求数据,URL的host使用配置的环境变量,请求数据使用变量做参数化,本地新建参数化文件备用

 

②设置断言 

 

③Runner配置

1、点击Runner,进入测试集批量执行设置页面

2、选择测试集下,要批量执行的请求,然后选择本地参数化的txt文件login.txt,数据文件类型选择text/csv,迭代次数iteration参数化数据多少个就填多少

3、点击preview,可以预览本地参数化数据

 ④以上配置完后,点击Run XXX按钮,即可批量执行用例,得到测试结果,如图

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Postman简介及接口测试流程(小菜鸟攻略) 的相关文章

  • java酒店管理系统小型项目

    前言 学习java这段时间以来 xff0c 给我的感觉是非常枯燥和乏味的 xff0c 因为学习编程这个过程就是这样 xff0c 除此之外我是自学 xff0c 所以遇到问题只能自己上网找资料 xff0c 或者看一些大佬的文章来解决问题 不过学
  • 基于智能优化算法的无人机路径规划(Matlab代码实现)

    目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 无人机作为一种现代航空设备 不仅作业速度快 成本低 还具有卓越的灵活性和时效性 常用于完成那些繁冗 危险 对灵活性要求较高 作业范围较大的任务 比如航空拍摄 农
  • 布谷鸟搜索算法的改进及其在优化问题中的应用(Matlab代码实现)

    x1f352 x1f352 x1f352 欢迎关注 x1f308 x1f308 x1f308 x1f4dd 个人主页 xff1a 我爱Matlab x1f44d 点赞 评论 收藏 61 61 养成习惯 xff08 一键三连 xff09 x1
  • 基于MATLAB中雷达和视觉合成数据的目标级传感器融合(Matlab)代码实现

    目录 x1f4a5 1 概述 x1f4da 2 运行结果 x1f389 3 参考文献 x1f468 x1f4bb 4 Matlab代码 x1f4a5 1 概述 本文使用MATLAB的场景生成器工具箱 xff0c 通过合成雷达和视觉观察创建一
  • Linux嵌入式开发——C编程

    文章目录 Linux嵌入式开发 C编程一 编写C程序1 1 设置vim编辑器1 2 编写C程序 二 编译C程序三 make工具和Makefile文件3 1 编写C程序C文件H文件 3 2 不使用make工具3 3 使用make工具和Make
  • C#中的接口

    一 什么是接口 含义 xff1a 接口是指定一组函数成员而不实现它们的引用类型 xff08 只能用类和结构实现接口 xff09 接口可以包含实例方法 属性 事件 索引器或这四种成员类型的任意组合 接口可以包含静态构造函数 xff08 不能创
  • VINS-MONO工程改造

    这篇是接着前文 主流VIO VSLAM系统改造与工程化落地 和 关于VIO零速更新 ZUPT 与控制三种约束的工程实践 的 xff0c 有时候想一出是一出 xff0c 导致写的东西还是太分散了 要做VINS改造首先要熟悉VSLAM和数学基础
  • DM-VIO简析

    今天主要是针对DMVIO DM VIO的简析 xff0c 中文网上有的东西都太少了 xff0c 只能靠看完论文和组员们一起改代码 Lukas组这个东西在中文网被称为有史以来最好的VIO xff0c 但是实际过程中我们还是发现了许多不完美的地
  • Hao to setup windbg on windows10 LTSC img

    Windows host Debugger install windbg https developer microsoft com en us windows downloads windows 10 sdk download the i
  • VINS/VIO的并行化与工程化(GPU篇)

    最近更新的这2篇应该是比较重的了 xff0c 先做GPU篇 xff0c 再做DSP篇 先友情提醒 xff0c 这篇文章很重很费时 xff0c 对各种软硬算的知识要求多多 主体知识来源于UZH和ETH的研究者Balazs Nagy组 xff0
  • 关于机器人状态估计8-VSLAM工程与VIO工程难点

    最近做产设和综述把头都整晕了 xff0c 本来想认真更新GPU那篇DSP的姊妹篇 xff0c 突然觉得太长了实在是没有写的欲望 xff0c 还是写篇杂文算了 一看这个标题就知道 首先如果没有 关于机器人状态估计 4 成长路径与能力提升这块基
  • VIO/VINS/VSLAM问题定位流程与思路

    首先假设读者是了解基础VSLAM xff0c 了解VIO基础 至少要会标定 xff0c 调过几个开源系统的 先说一下双目的VINS FUSION xff0c 大部分问题都是基线造成的问题 xff0c 简单点说就是如果使用较短的基线如5cm
  • VIO/VINS中关于能观性/可观性的详细讲解

    以前大概写过一下 xff0c 太烂了 也是没什么人写 xff0c 再详细讲解一下 整体简洁一点尝试主要用文字说明这个比较关键的点 xff0c 其实整体和多传感器融合也有很大的关联 xff0c 无论是外感还是内感传感器 xff0c 无外乎从运
  • 关于机器人状态估计(10)-VSLAM与VIO的3D建图,重定位与世界观综述

    近期我国迎来了cov海啸 xff0c 其实我也不知道我羊了没有 xff0c 但并没有什么不舒服同时因为我没有测 xff0c 那自然是没有羊 xff0c 或者是薛定谔的羊 近年另外一块工作的综述 xff0c 这篇科普的同时 xff0c 也会包
  • 关于机器人状态估计(11)-VIO单目与双目/雷达Lidar SLAM/未来的机器人

    写这篇文章的时候刚发生行业大事件 xff1a Google收购ROS 其实一开始还是水 xff0c 绝对大量文不对题 xff0c 但是必有干货 xff0c 毕竟用的是这个关键的系列标题 最近有几件行业内发生的大小事 xff0c 让我觉得有必
  • Javaer都在用的Java后端面试笔记, 涵盖90%的主流技术,啃完分分钟拿下大厂offer!!

    到底该如何准备高级开发 架构师级别的面试 xff1f 为了帮助有需要的朋友在金九银十面试 xff0c 最近整理了一份面试知识点笔记复习资料 xff0c 内容包含 xff1a JVM xff0c JAVA多线程并发 xff0c Spring
  • 防火墙---firewalld

    Firewalld概述 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具支持IPv4 IPv6防火墙设置以及以太网桥支持服务或应用程序直接添加防火墙规则接口拥有两种配置模式 xff1a 运行时配置永久配置 firewalld
  • Linux系统的初次使用

    在linux中安装JDK 1 安装xftp7 从windows上传输一个JDK到Linux中 opt apps下 2 对 opt apps下的JDK压缩包进行解压 tar zxvf jdk 8u191 linux x64 tar gz 3
  • C语言加强篇——(1)学习笔记 之 变量、指针、关键字

    系列文章目录 C语言加强篇 xff08 1 xff09 学习笔记 之 变量 指针 关键字 C语言加强篇 xff08 2 xff09 学习笔记 之 结构体 结构体指针 函数指针 C语言加强篇 xff08 3 xff09 学习笔记 之 链表的增
  • linux/unix系统下IOZONE/iozone磁盘性能测试工具方法

    IOZONE主要用来测试操作系统文件系统性能的测试工具 xff0c 该工具所测试的范围主要有 xff0c write Re write Read Re Read Random Read Random Write Random Mix Bac

随机推荐