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

news2024/11/15 8:57:15

前言

在软件开发过程中,接口测试是确保软件各组件之间正确交互的关键环节。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.coloradmin.cn/o/2067203.html

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

相关文章

Excel的使用总结3

1、选择一列数据&#xff0c;除了表头 点击表头下的第一个数据&#xff0c;点击快捷键CTRLSHIFT ↓ 2、如何将00001&#xff0c;这样的数据前面的0去掉&#xff08;前提是单元格格式已经是文本了&#xff09; 可以直接使用text公式

微软RDL远程代码执行超高危漏洞(CVE-2024-38077)漏洞检测排查方式

漏洞名称&#xff1a;微软RDL远程代码执行超高危漏洞&#xff08;CVE-2024-38077&#xff09; CVSS core: 9.8 漏洞描述&#xff1a; CVE-2024-38077 是微软近期披露的一个极其严重的远程代码执行漏洞。该漏洞存在于Windows远程桌面许可管理服务&#xff08;RDL&#xff09…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——6.vector(模拟实现)

1.存储结构 namespace zone {template<class T> //需要模板class vector{public:private:iterator _start;iterator _finish;iterator _endofstorage;}; } 可见&#xff0c;vector内核是由三个指针实现的 2.默认成员函数 2.1.构造函数 1.初始化列表 vector() :_star…

【算法】粒子群优化

一、引言 粒子群优化算法&#xff08;Particle Swarm Optimization, PSO&#xff09;是一种基于群体智能的优化技术&#xff0c;由Eberhart和Kennedy在1995年提出。它模拟鸟群觅食行为&#xff0c;通过个体与群体的协作来寻找最优解。通过模拟一群粒子的运动来寻找最优解。每个…

uniapp微信小程序 分享功能

uniapp https://zh.uniapp.dcloud.io/api/plugins/share.html#onshareappmessage export default {onShareAppMessage(res) {if (res.from button) {// 来自页面内分享按钮console.log(res.target)}return {title: 自定义分享标题,path: /pages/test/test?id123}} }需要再真机…

通过运动延寿:对于普通人最佳的延寿运动是球拍类运动

文章目录 I 通过运动延寿1. 练多久?一周锻炼几次?——45~60 分钟,一周 3~5 次2. 练什么?重点锻炼什么?——有氧运动+力量训练3. 怎么练?锻炼到什么强度?——要达到中等强度运动II 运动类型与寿命之间的关联在男性中在女性中普通人最佳的延寿运动: 球拍类I 通过运动延…

使用shell命令写一个简单的购物小票

1、代码实现 #!/bin/bash goodName1"钢笔" goodName2"泡面" echo "请输入$goodName1的价格?" read price1 echo "请输入$goodName1的数量?" read num1 total$(expr $price1 \* $num1) echo $total echo "$goodName1:价格…

【Oracle点滴积累】Oracle 19c安装Critical Patch Update for January 2023

广告位招租&#xff01; 知识无价&#xff0c;人有情&#xff0c;无偿分享知识&#xff0c;希望本条信息对你有用&#xff01; 今天和大家分享如何为Oracle 19c(未启用RMAN的单实例)安装Critical Patch Update(Patch Number:34771828)&#xff0c;本指引不包含Roll Back部分&a…

连锁店收银系统源码-线下收银多端视频展示

千呼新零售2.0系统由零售行业连锁店一体化收银系统和多商户入驻平台商城两个板块组成&#xff0c;打造门店平台的本地生活即时零售模式。 其中连锁店收银系统包括线下收银私域商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。…

如何完美备份自己的微博,即使是封号之后

感谢 https://github.com/Chilfish/Weibo-archiver 工具和环境 可以用chrome插件的浏览器&#xff0c; 比如opera安装篡改猴插件安装nodejsvscode 第一步&#xff0c;安装浏览器插件 安装Tampermonkey 然后打开https://raw.githubusercontent.com/Chilfish/Weibo-archiver/m…

拼车系统开发方案

一、项目背景 随着城市化进程的加快和私家车数量的激增&#xff0c;交通拥堵和环境污染问题日益严峻。拼车作为一种绿色、经济的出行方式&#xff0c;逐渐成为缓解这些问题的重要途径。开发一个高效、安全、便捷的拼车系统不仅有助于提升出行效率&#xff0c;还能减少交通拥堵…

roles、通过roles实现lamp及lnmp、数据库的高可用和负载均衡的实现

roles(难点) 1、介绍 roles(⻆⾊): 就是通过分别将variables, tasks及handlers等放置于单独的⽬录中,并可以便捷地调⽤它们的⼀种机制。假设我们要写⼀个playbook来安装管理lamp环境&#xff0c;那么这个playbook就会写很⻓。所以我们希望把这个很⼤的⽂件分成多个功能拆分, …

Android SDK 遇到的坑之 AIUI(星火大模型)

目录 一、AIUI 二、常见错误 2.1 唤醒无效 2.2 错误码:600103 1、存放唤醒词等资源的路径 2、aiui_phone.cfg 文件配置 3、vtn.ini 文件配置 2.3 错误码:600022 相关推荐 一、AIUI 需要给桌面机器人(医康养)应用做语音指引/控制/健康咨询等功能&#xff0c;根据调研选择A…

【Midjourney】Midjourney全面开放网站版,所有用户每天可免费生成25次

Midjourney一直作为AI文生图领域的龙头老大&#xff0c;最近对面对市场上日益增长的竞争压力&#xff0c;尤其是来自 Flux 的挑战&#xff0c;终于向所有用户开放官方网站。尽管还处于早期阶段&#xff0c;但为了吸引更多用户体验&#xff0c;它暂时是完全免费的。 下面是Midj…

河道非法采砂智能检测系统:采砂船识别监测系统

一、引言 随着科技的不断发展&#xff0c;河道非法采砂问题日益严重&#xff0c;不仅破坏了河床生态平衡&#xff0c;还危及河道沿岸人民的生命财产安全。因此&#xff0c;建立一个高效、智能的河道非法采砂检测系统势在必行。本文将重点介绍一种基于智能识别的河道非法采砂检…

Autosar(Davinci) --- 新增一帧CAN报文

前言 这里我们简单讲解以下如何通过DBC配置,新增一帧CAN报文,并发送到上位机。 一、修改DBC 首先在Demo工程dbc的基础上,我们新增一个Signal,Message, 然后将这个Message绑定到某一个Network node下,这里我放在了MyECU这个节点下。 这里dbc怎么新建Signal,Message什么的,…

并行程序设计基础——组通信(2)

目录 一、组收集 二、全互换 三、同步 四、规约 五、预定义的归约操作 上一节内容我们介绍了MPI组通信的基本概念和广播、收集、散发接口调用。本节我们继续介绍其余的组通信接口。 一、组收集 MPI_GATHER是将数据收集到ROOT进程,MPI_ALLGATHER相当于每一个进程…

Unity 资源 之 Photon Inventory 2 (Game Creator 2)

免费获取资源&#xff1a; 有2种方式可免费获取资源&#xff1a; 在后台回复**“UnityAssetStore**“ 或 ”Unity资源”。在Unity官方地址&#xff1a;https://assetstore.unity.com/publisher-sale &#xff0c;兑换码&#xff1a;NINJUTSUGAMES 【本周限定】 关注我每周&a…

微软 Azure 推出文本到语音虚拟人;英伟达发布 8B 小语言模型,可在 RTX 工作站部署丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

ArrayList底层扩容机制详解保姆级

我们对下面代码进行debug&#xff0c;当我们使用无参构造器时&#xff0c;也就是没用指定ArrayList的容量的时候他他是空的&#xff0c;当我们第一次添加的时候才会扩容为10&#xff0c;当容量满之后每次会以1.5倍进行扩容。 当我们new之后elementData是空的 &#xff0c;只有执…