当前位置: 首页 > news >正文

Postman接口自动化测试:从入门到实践!

前言

在软件开发过程中,接口测试是确保软件各组件之间正确交互的关键环节。Postman作为一款强大的API开发工具,不仅支持接口请求的发送与调试,还提供了丰富的自动化测试功能,使得接口自动化测试变得更加高效和便捷。本文将从Postman的基础使用开始,逐步引导你如何利用Postman进行接口自动化测试。

为什么需要自动化测试?

  • 可以替代大量的手工机械重复性操作,测试工程师可以把更多的时间花在用例设计和新功能的测试上

  • 可以大幅度提升回归测试的效率,非常适合敏捷开发过程

  • 可以更好地利用无人值守时间,去更频繁地执行测试

  • 可以高效实现某些手工测试无法完成或代价巨大的测试类型,例如:7*24小时持续运行的系统稳定性测试和高并发场景的压力测试

  • 可以保证每次执行的操作具有一致性和可重复性,不会受人的感情因素影响。

Postman接口自动化流程

一、安装

1. 安装与启动

  • 访问Postman官网下载并安装Postman。

  • 启动Postman,你会看到一个简洁的界面,包含请求构建器、响应视图、侧边栏等多个部分。

2. 创建请求

  • 在Postman中,你可以通过点击左上角的“New”按钮来创建一个新的请求或集合。

  • 在请求构建器中,你可以设置请求的方法(GET、POST等)、URL、Headers、Body等。

  • 点击“Send”发送请求,并查看响应结果。

二、构建接口测试集合

为了进行自动化测试,我们需要将相关的接口请求组织在一个集合(Collection)中。

1. 创建集合

  • 点击侧边栏的“Collections”选项卡,然后点击“+ New”按钮创建一个新的集合。

  • 为你的集合命名,并添加必要的描述。

2. 添加请求到集合

  • 在请求构建器中完成请求的设置后,点击“Save”按钮。

  • 选择你之前创建的集合,将请求保存到该集合中。

三、编写测试用例

Postman提供了“Tests”标签页,允许你编写JavaScript脚本来对响应进行断言,从而实现测试用例的编写。

1. 编写测试脚本

在请求的“Tests”标签页中,你可以编写JavaScript脚本来对响应的状态码、响应体等进行检查。

例如,检查HTTP状态码是否为200:

pm.test("Status code is 200", function () {      pm.response.to.have.status(200);  });

检查响应体中是否包含特定内容:

pm.test("Body contains content", function () {      pm.expect(pm.response.text()).to.include("expected content");  });

四、运行集合测试

Postman允许你一次性运行集合中的所有请求及其测试脚本。

  • 使用Runner运行测试

  • 点击集合旁边的“Run”按钮,打开Runner界面。

  • 选择你想要运行的集合,设置迭代次数(如果需要的话),然后点击“Run [Collection Name]”开始测试。

  • Runner会依次执行集合中的每个请求,并在界面上展示测试结果。

图片

实践演练

1.新建集合

图片

2.新建接口

图片

3.填写自动化测试脚本

例如,我需要测试几点

http状态码200

返回的json的code码是0

接口返回时间不小于1000毫秒,脚本如下

//查看httpCode码tests["接口状态码200"] = responseCode.code === 200;//判断请求时间tests["返回时间小于1000毫秒"] = responseTime < 1000;//返回body转jsonvar data = JSON.parse(responseBody);//检查json数据tests['code码必须为0']= data.code==0

4.运行测试结果如下:

图片

5.批量录入所有接口

然后接下我要对所有的接口进行这样的测试,把这些接口都录入,如下

图片

6.执行自动化测试

点击集合的Run按钮

图片

弹出如下界面,可以填写相应的参数,这里我用默认的

图片

点击Run,执行结果如下

图片

可以看到,我们测试了32个接口,其中25个通过,7个失败!

另外Postman还推出了命令行版本Newman,可以配合Jenkins做接口自动化测试和持续集成。

1. 安装Newman

你可以通过npm安装Newman:npm install -g newman

2. 使用Newman运行测试

将Postman集合导出为JSON文件。

在命令行中使用Newman运行该JSON文件:newman run your_collection.json

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 物联网(IoT)设备渗透文章二:智能家居中控系统的渗透与利用
  • C++ 设计模式——观察者模式
  • 【CAN总线测试】——CAN数据链路层测试
  • RK平台一个系统固件兼容多款屏幕
  • 虚幻5|AI行为树,跟随task(非行为树AI)
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • 内存管理篇-03物理内存管理-32位
  • MySQL 的子查询(Subquery)
  • 单例模式 详解
  • 计算机毕业设计opencv+pytorch疲劳驾驶检测系统 自动驾驶 面部多信息特征融合的疲劳驾驶检测系统 驾驶员疲劳驾驶风险检测 深度学习 机器学习 大数据
  • Educational Codeforces Round 169 (Rated for Div. 2)
  • Java语言程序设计——篇十七(1)
  • verilog中两个常数相除
  • 三、LogicFlow 基础配置介绍及实现一个基础 Demo
  • Vue3 条件语句 8
  • 分享一款快速APP功能测试工具
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • canvas绘制圆角头像
  • css的样式优先级
  • ES2017异步函数现已正式可用
  • JAVA SE 6 GC调优笔记
  • JAVA多线程机制解析-volatilesynchronized
  • Java精华积累:初学者都应该搞懂的问题
  • Java应用性能调优
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 翻译--Thinking in React
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 技术发展面试
  • 解析 Webpack中import、require、按需加载的执行过程
  • 入门到放弃node系列之Hello Word篇
  • 微信小程序实战练习(仿五洲到家微信版)
  • 译有关态射的一切
  • 硬币翻转问题,区间操作
  • # 职场生活之道:善于团结
  • (备份) esp32 GPIO
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (翻译)terry crowley: 写给程序员
  • (蓝桥杯每日一题)love
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (新)网络工程师考点串讲与真题详解
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net core Swagger 过滤部分Api
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net连接MySQL的方法