90%的测试工程师是这样使用Postman做接口测试的

news2024/10/5 18:30:24

一:接口测试前准备

接口测试是基于协议的功能黑盒测试,在进行接口测试之前,我们要了解接口的信息,然后才知道怎么来测试一个接口,如何完整的校验接口的响应值。

那么问题来了,那接口信息从哪里获取呢?常用的有三种方式:

1.通过抓包工具比如fiddle,charles获取接口信息

2.通过浏览器开发者工具,networks查看接口请求信息

3.当然最直接和最靠谱的就是接口文档,这就是接口的需求文档

一个规范的接口文档最基本的应该包含了:

  • 接口请求地址、请求方法、请求头信息说明
  • 接口入参说明(包括参数的类型、是否必填、长度范围等)
  • 接口响应示例、响应状态码

现在很多公司没有接口文档,但是接口的重要性我这里就不累赘了,我认为测试人员应该主动提出来,开发需要编写接口文档,在测试工作中需要更加主动。下面是我编写的swagger的接口文档,大家可以参考一下:

二:接口测试实战

一般刚开始接触接口测试都是基于测试工具,比如接口调试神奇postman,开发和测试都用它来调试和测试接口。

这里演示部分的接口是用Flask搭建的Mock Serve,后续也会分享如何从0搭建接口项目

实例一:demo

接口信息:

地址 :127.0.0.1:5000/api/demo

GET类型

参数为limit 非必填 ,表示获取数据限制

我们打开postman,请求demo接口,如图所示:

这个demo接口由于可以不填任何参数,和请求头部信息,所以操作非常简洁,输入接口地址,选择接口请求方法,点击send直接请求成功,或者接口的响应状态码,和响应值。那如果get请求有参数入参怎么请求呢?如图所示:

 

 

在Params中以键值对的形式填写参数,大家发现这个时候接口响应值里面的info字段只有一条数据信息了,那当然limit为2时,就返回2条数据。细心的朋友可能已经发现get接口的参数直接拼接在url后面,如:http://127.0.0.1:5000/api/demo?limit=1,get接口也可以直接在浏览器中请求,获取响应值

三:理解cookie

通过一个实例12306查询车次信息接口来理解讲接口请求头信息中的cookie,打开浏览器开发者工具获取接口地址,请求方法,参数,响应值等如图所示:

然后像实例一在postman里面输入接口地址和参数,发送请求,但是,请求失败了,小朋友,你是否有很多问号: 

 

那为什么在网页中这个接口请求没有问题,到postman里面来就失败了。其实当web开发人员去向后端请求这个接口的时候,会把浏览器一些网站信息,用户的登录状态,用户的浏览习惯等通过Request Headers中的cookie传给后端,但是postman就不会。那我就在postman里面模拟添加请求头信息(头信息在浏览器中可以获取),如图所示:

 

果然就请求成功了,是不是有点意思,通过俩个get接口实例,理解接口测试和cookie。那么接下来我们看一个post类型的接口,顺便理解一下常见的token,这也是面试常问的一个问题,问到接口鉴权如何测试

四:接口测试实战之post接口

接口信息:地址127.0.0.1:5000/api/login POST类型

参数 username 表示登录用户名

密码 password 表示登录密码

Content-Type:application/json

如图所示:

post接口首先选择Body参数,再输入参数发送请求。我们可以看到登录接口如果请求成功了,就返回了一个token,就像身份证ID,每个人都有都是唯一的。该token就是这个人员的通行证。

token鉴权,简单来说,就是要不要登录,一般来说,一个系统的所有接口都需要鉴权才能请求,换句话说先要请求这个系统的登录接口,拿到服务端响应认证,才能去请求其它接口,一般放在请求头headers或者body参数里面。如果请求其它接口没有传token就会提示无权限访问或者未登录

对于http协议我们已经掌握常用的getpost接口测试,那当然还有其它很多类型的接口测试,比如delete,put等,还有入参为form-data类型的接口,比如文件上传接口

那么对于不同协议的接口,比如webservice等,dubbo接口我们都需要通过实例去了解。当理解了各种类型的接口测试之后,我们就可以进行接口自动化了,得到一套落地有效的接口自动化测试方案,可以根据实际测试需求自主封装搭建适合项目的测试框架。

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 全套资料获取方式:点击下方小卡片自行领取即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国AI大模型峰会“封神之作”!开发者不容错过这场夏季盛会

年度最强大模型顶会来袭!喊话中国数百万AI开发者,速来! 硬核来袭!中国AI大模型峰会“封神之作”,开发者们不容错过! 前瞻大模型发展趋势,紧跟这场大会! 中国科技超级碗,大模型最新前…

SpringCloud Alibaba分布式集群要点

1、可通过nginxkeepalived实现nginx高可用集群。 2、nacos集群,在nacos/conf/cluster.conf配置IP:8848,nginx中配置nacos负载均衡,yml文件使用其对应域名即可。 注:服务器之间内网不通 举例:腾讯服务器之间就存在内网不通的现象…

关于bigemap在土地行业的一些应用

选择Bigemap的原因: 由于我们是国营企业单位,管理六万多亩的国有土地,必须要有这样的软件套图 客户之前用的谷歌,后来不能访问了,通过百度搜索到这款软件 使用场景: 使用软件一般都用于套坐标以及空间规…

未来将有可能是元宇宙发展的数字化时代

近年来,元宇宙环境的概念近年来引起了广泛关注,并引发了巨大的舆论浪潮。然而,经济形式的放缓和行业向人工智能的转变所带来的挫折引发了人们对这一 " 雄心勃勃 " 的概念的可行性和时机的质疑。 很明显,一些挑战阻碍了…

Python元编程-装饰器介绍、使用

目录 一、Python元编程装饰器介绍 二、装饰器使用 1. 实现认证和授权功能 2.实现缓存功能 3.实现日志输出功能 三、附录 1. logging.basicConfig介绍 2. 精确到毫秒,打印时间 方法一:使用datetime 方法二:使用time 一、Python元编程…

Eureka 学习笔记4:EurekaClient

版本 awsVersion ‘1.11.277’ EurekaClient 接口实现了 LookupService 接口&#xff0c;拥有唯一的实现类 DiscoveryClient 类。 LookupService 接口提供以下功能&#xff1a; 获取注册表根据应用名称获取应用根据实例 id 获取实例信息 public interface LookupService<…

【MySQL】数据库基本使用

文章目录 一、数据库介绍二、数据库使用2.1 登录MySQL2.2 基本使用2.2.1 显示当前 MySQL 实例中所有的数据库列表2.2.2 创建数据库2.2.3 创建数据库表2.2.4 在表中插入数据2.2.5 在表中查询数据 三、服务器、数据库、表之间的关系四、SQL语句分类五、存储引擎 一、数据库介绍 …

多线程案例(2)

文章目录 多线程案例二二、阻塞式队列 大家好&#xff0c;我是晓星航。今天为大家带来的是 多线程案例二 相关的讲解&#xff01;&#x1f600; 多线程案例二 二、阻塞式队列 阻塞队列是什么 阻塞队列是一种特殊的队列. 也遵守 “先进先出” 的原则. 阻塞队列能是一种线程…

设计走查指南:提升设计质量的关键步骤

在产品设计过程中&#xff0c;确保产品设计质量是至关重要的。设计走查作为一种关键的质量控制方法&#xff0c;能够帮助设计团队发现问题并采取相应措施来提升设计质量。通过有效地进行设计走查&#xff0c;团队可以提高设计作品的一致性、可用性和用户满意度&#xff0c;从而…

正则表达式在格式校验中的应用以及包装类的重要性

文章目录 正则表达式&#xff1a;做格式校验包装类&#xff1a;在基本数据类型与引用数据类型间的桥梁总结 在现代IT技术岗位的面试中&#xff0c;掌握正则表达式的应用以及理解包装类的重要性是非常有益的。这篇博客将围绕这两个主题展开&#xff0c;帮助读者更好地面对面试挑…

Elasticsearch Java客户端和Spring data elasticsearch-Elasticsearch文章三

文章目录 官网版本组件版本说明实现代码地址es Spring Data Repositories例子&#xff1a;ElasticsearchRepository分析 es Spring Data Repositories 关键字es Spring Data Repositories client 加载rest风格客户端直接执行dsl例子响应式客户端-ReactiveElasticsearchClientpo…

【SLAM】LoFTR知多少

1. LoFTR: Detector-Free Local Feature Matching with Transformers PAPER 论文 | LoFTR: Detector-Free Local Feature Matching with Transformers 代码 | CODE: 关键词 | detector-free, local feature matching LoFTR知多少 1. LoFTR: Detector-Free Local Feature M…

DirectX SDK下载安装及开发环境设置

1 DirectX DirectX&#xff08;Direct eXtension&#xff0c;简称DX&#xff09;是由微软公司创建的多媒体编程接口&#xff0c;是一种应用程序接口&#xff08;API&#xff09;。DirectX可以让以windows为平台的游戏或多媒体程序获得更高的执行效率&#xff0c;加强3D图形和声…

15、两个Runner初始化器(ApplicationRunner接口和CommandLineRunner接口的实现类)

两个Runner初始化器 两个Runner初始化器——主要作用是对component组件来执行初始化 这里的Component组件我理解为是被Component注解修饰的类 Component //用这个注解修饰的类&#xff0c;意味着这个类是spring容器中的一个组件&#xff0c;springboot应用会自动加载该组件。 …

python-网络爬虫.regular

regular 正则表达式 (regular expression) 正则表达式(regular expression)描述了一种字符串匹配的模式 &#xff08;pattern&#xff09;&#xff0c; 可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串 中取出符合某个条件的子串等。 正则表达式是由普通…

gitlab配置webhook

一.前言 当需要做jenkins的自动化触发构建时&#xff0c;就需要配置gitlab的webhook功能&#xff0c;以下来展示以下如何配置gitlab的webhook&#xff0c;jenkins的配置就不在这里展示了&#xff0c;可以去看我devops文章的完整配置 二.配置 在新版本的gitlab中&#xff0c…

MySQL对表的操作以及数据类型

文章目录 创建删除表查看修改重命名表新增列修改列的属性删除列修改列名插入数据 数据类型enum和setenum和set的查找 创建 create table table_name ( field1 datatype, field2 datatype, field3 datatype ) charset 字符集 collate 校验规则 engine 存储引擎;其中field 表示列…

Linux - 环境变量

1.基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#xff0c;但 是照样可以链接成功&#xff0c;生…

超级个体新时代Web3space西南旗舰合伙人招募活动圆满落幕

7月30日&#xff0c;一场备受瞩目的超级个体新时代—Web3space西南旗舰合伙人招募活动在四川省成都市G1咖啡馆会议室成功举办。本次活动吸引了30余位Web3领域的从业者和爱好者参与&#xff0c;现场氛围十分热烈。 首先&#xff0c;CyberDAO执行合伙人JR老师主持了Web3space商业…

【AI实战】开源中文 llama2 来了,30 分钟搭建 130 亿参数大模型 Llama2-Chinese-13b-Chat

【AI实战】开源中文 llama2 来了&#xff0c;30 分钟搭建 130 亿参数大模型 Llama2-Chinese-13b-Chat 简介环境配置环境搭建依赖安装 代码及模型权重拉取拉取 Llama2-Chinese拉取 Llama2-Chinese-13b-Chat 模型权重及代码 终端测试页面测试安装 gradio加载模型并启动服务 国内 …