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

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

软件测试面试文档

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


http://www.ppmy.cn/news/1516877.html

相关文章

机器人走路问题优化解法

public class Test53 {//假设有N个位置&#xff0c;记为1-N&#xff0c;N大于或等于2//开始机器人在M位置上&#xff08;M为1-N中的一个&#xff09;//如果机器人来到1位置&#xff0c;那么下一步只能向右来到2位置//如果机器人来到N位置&#xff0c;那么下一步只能向左来到N-1…

【算法题】找到任意一个峰值数字 要求时间复杂度为logn

在数组中找到一个峰值数字&#xff0c;‌其中峰值定义为比其相邻元素大的元素&#xff0c;‌可以使用二分查找算法来实现时间复杂度为O(log n)。‌ 以下是一个Java示例&#xff0c;‌演示如何在一个整数数组中找到任意一个峰值数字&#xff1a;‌ public class PeakFinder {p…

读取FTP中不同文件格式的文件流后导出到浏览器

序言 有一个新的需求&#xff0c;前端提供下载的入口&#xff0c;后端能将指定了全路径的各种文件格式的文件下载到浏览器。 对于压缩的zip文件格式需要解析后写入到txt文件格式的文件中&#xff0c;其他的写入原本的文件格式的文件中。 1、连接ftp <!-- jsch-sftp连接…

项目策划书六度自由双足机器人

一、项目的简要介绍 双足机器人的机构是所有部件的载体,也是设计双足机器人最基本的和首要的工作。本文根据项目规划和控制任务要求&#xff0c;按照从总体到部分、由主到次的原则&#xff0c;设计了一种适合仿人双足机器人控制的机构.文章首先从机构的设计目标出发&#xff0c…

【通俗理解】混合专家模型中的导诊与流程处理

【通俗理解】混合专家模型中的导诊与流程处理 关键词提炼 #混合专家模型 #导诊系统 #流程处理 #router #expert #token处理 第一节&#xff1a;混合专家模型中的导诊与流程处理类比 1.1 导诊与流程处理的类比 在混合专家模型中&#xff0c;导诊系统&#xff08;router&…

Android12 显示框架之Transaction----server端

目录&#xff1a;Android显示终极宝典 上篇讲完了在client端Transaction的内容&#xff0c;最后调用setTransactionState()把所有的参数都交给了surfaceflinger&#xff0c;那么任务就交给server来完成了。本节我们一起接着看看下面的内容。 setTransactionState() //framew…

学懂C++(四十五 ):深入详解C++ STL 容器:从基础到进阶

目录 1. 向量&#xff08;Vector&#xff09; 概念 特点 核心点 实现 适用场景 代码解析 2. 双端队列&#xff08;Deque&#xff09; 概念 特点 核心点 实现 适用场景 代码解析 3. 列表&#xff08;List&#xff09; 概念 特点 核心点 实现 适用场景 代码…

大模型备案重难点最详细说明【评估测试题+附件】

2024年3月1日&#xff0c;我国通过了《生成式人工智能服务安全基本要求》&#xff08;以下简称《AIGC安全要求》&#xff09;&#xff0c;这是目前我国第一部有关AIGC服务安全性方面的技术性指导文件&#xff0c;对语料安全、模型安全、安全措施、词库/题库要求、安全评估等方面…

设计模式(二):工厂模式

一&#xff0c;什么是工厂模式 工厂模式&#xff08;Factory Pattern&#xff09; 是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;而不需要显式地指定对象所属的具体类。换句话说&#xff0c;工厂模式将对象的实例化过程延迟到子类或其他工厂方…

【论文阅读】NGD-SLAM: Towards Real-Time SLAM for Dynamic Environments without GPU

arxiv上一篇很新的视觉SLAM论文&#xff0c;能够在不使用GPU的情况下进行语义分割的辅助运算。 一、跟踪流程 作为一个语义结合的视觉SLAM&#xff0c;其基本的思路和以前看过的DynaSLAM基本类似&#xff0c;都是依赖语义分割模型对场景中动态的特征点进行剔除&#xff0c;这…

【jvm】栈是否存在垃圾回收

目录 一、栈的特点1.1 栈内存分配1.2 栈的生命周期1.3 垃圾回收不直接涉及 二、堆与栈的区别三、总结 一、栈的特点 1.1 栈内存分配 1.栈内存分配是自动的&#xff0c;不需要程序员手动分配和释放。 2.每当一个方法被调用时&#xff0c;JVM就会在这个线程的栈上创建一个新的栈…

C++ | Leetcode C++题解之第355题设计推特

题目&#xff1a; 题解&#xff1a; class Twitter {struct Node {// 哈希表存储关注人的 Idunordered_set<int> followee;// 用链表存储 tweetIdlist<int> tweet;};// getNewsFeed 检索的推文的上限以及 tweetId 的时间戳int recentMax, time;// tweetId 对应发送…

使用GDIView工具排查GDI对象泄漏案例的若干细节总结

目录 1、查看任务管理器,发现程序中有明显的GDI对象泄漏 2、使用GDIView工具查看发生泄漏的是哪一种GDI对象 3、尝试找到复现问题的方法,缩小排查范围,逐步地找到GDI对象的泄漏点 4、本案例中的相关细节点的思考与总结(有价值的细节点) 4.1、UI界面无法显示的原因分析…

TypeScript 面试题汇总

引言 TypeScript 是一种由微软开发的开源、跨平台的编程语言&#xff0c;它是 JavaScript 的超集&#xff0c;为 JavaScript 添加了静态类型系统和其他高级功能。随着 TypeScript 在前端开发领域的广泛应用&#xff0c;掌握 TypeScript 已经成为很多开发者必备的技能之一。本文…

Clickhouse集群化(六)clickhosue-operator学习

1. Custom Resource元素 apiVersion: "clickhouse.altinity.com/v1" kind: "ClickHouseInstallation" metadata:name: "clickhouse-installation-test" 这是clickhouse operator自定义的资源ClickHouseInstallation 1.1. .spec.defaults spe…

35次8.23(docker02)

#搜索拉取镜像 docker search centos docker pull centos #创建启动容器 docker run -it --namea0 centod:latest echo "abc" #如果容器中没有正在执行的指令&#xff0c;就会exit docker run -it --namea0 cenyos:latest /bin/bash #查看docker进程 docker ps #发现…

SQL,解析 json

Google BigQuery数据库的data表存储了若干多层的Json串&#xff0c;其中一条形如&#xff1a; [{"active":true,"key":"key1","values":[{"active":true,"value":"value1"}]},{"active":tru…

go 系列实现websocket

一、简介 websocket是个二进制协议&#xff0c;需要先通过Http协议进行握手&#xff0c;从而协商完成从Http协议向websocket协议的转换。一旦握手结束&#xff0c;当前的TCP连接后续将采用二进制websocket协议进行双向双工交互&#xff0c;自此与Http协议无关。 二、websocket…

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架&#xff0c;所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class"container"></div> </template><script type"text/ecmascript-6&q…

未来城市的科技展望

未来城市&#xff0c;‌将是科技与人文深度融合的产物&#xff0c;‌展现出一个全方位智能化、‌绿色生态且可持续发展的全新面貌。‌随着物联网、‌人工智能等技术的飞速发展&#xff0c;‌未来城市的轮廓逐渐清晰&#xff0c;‌它将为我们带来前所未有的生活体验。‌ 在未来…