Postman 接口自动化测试教程:入门介绍和从 0 到 1 搭建 Postman 接口自动化测试项目

关于Postman接口自动化测试的导引,全面介绍入门基础和从零开始搭建项目的步骤。学习如何有效地使用Postman进行API测试,了解项目搭建的基础结构、环境设置和测试用例的编写。无论您是新手还是经验丰富的测试人员,这篇教程都将为您提供清晰的指导,助您轻松构建强大的Postman接口自动化测试项目,实现从零到一的全面掌握。

介绍

接口测试简介
什么是 API?

API:应用程序接口(全称:application programming interface),缩写为 API,是一种计算接口,它定义多个软件中介之间的交互,以及可以进行的调用(call)或请求(request)的种类,如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。它还可以提供扩展机制,以便用户可以通过各种方式对现有功能进行不同程度的扩展。一个 API 可以是完全定制的,针对某个组件的,也可以是基于行业标准设计的以确保互操作性。通过信息隐藏,API 实现了模块化编程,从而允许用户实现独立地使用接口。

什么是 API 测试?

接口测试是软件测试的一种,它包括两种测试类型:狭义上指的是直接针对应用程序接口(下面使用缩写 API 指代,其中文简称为接口)的功能进行的测试;广义上指集成测试中,通过调用 API 测试整体的功能完成度、可靠性、安全性与性能等指标。

API Best Practice:

  • • API 定义遵循 RESTFUL API 风格,语意化的 URI 定义,准确的 HTTP 状态码,通过 API 的定义就可以知道资源间的关系

  • • 配有详细且准确的 API 文档(如 Swagger 文档)

  • • 对外的 API 可以包含版本号以快速迭代(如 https://thoughtworks.com/v1/users/)

测试四象限中不同象限的测试,其测试目的跟测试策略也不同,API 测试主要位于第二、第四象限

API 测试在测试金子塔中处于一个相对靠上的位置,主要站在系统、服务边界来测试功能和业务逻辑,执行时机是在服务完成构建、部署到测试环境之后再执行、验证。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:1150305204【暗号:csdn999】

API 测试类型

功能测试

  • • 正确性测试

  • • 异常处理

  • • 内部逻辑

  • • ……

非功能测试

  • • 性能

  • • 安全

  • • ……

API 测试步骤
  • • 发送请求

  • • 得到响应

  • • 验证响应结果

Postman 与 newman 介绍

Postman 是一个流行的 API 开发工具,它提供了一个易于使用的图形界面,可用于创建,测试和调试 API。Postman 还提供了一个可以轻松编写和共享测试脚本的功能。它支持多种 HTTP 请求方法,包括 GET,POST,PUT,DELETE 等,并且可以使用各种身份验证和授权方式来测试 API。

Newman 是 Postman 的命令行工具,可用于在不使用 Postman GUI 的情况下运行测试集。使用 Newman,用户可以轻松地将 Postman 集合导出为一个可执行文件,并在任何环境中运行它。此外,Newman 还支持生成 HTML 或 Junit 格式的测试报告,以及集成到 CI/CD 管道中以实现自动化测试。

总的来说,Postman 是一个强大的 API 开发和测试工具,而 Newman 则是一个方便的命令行工具,用于在不使用 Postman GUI 的情况下运行测试集。它们的结合使用可以提高 API 测试和开发的效率和准确性。

除了基本功能,Postman 还具有以下特性:

  1. 1. 环境和变量管理:Postman 支持在不同环境之间切换,例如在开发、测试和生产环境之间切换。同时,它还支持变量管理,可以轻松地为不同的测试用例和请求设置变量。

  2. 2. 自动化测试:用户可以使用 Postman 创建和运行自动化测试,以便在持续集成或部署流程中集成。这使得测试变得更加准确和高效。

  3. 3. 协作和共享:Postman 支持将集合和环境与团队共享,方便团队成员之间的协作。

  4. 4. 监控:Postman 还提供 API 监控功能,可以实时监控 API 的可用性和性能。

而 Newman 则主要有以下特点:

  1. 1. 命令行接口:Newman 可以在命令行中运行,因此可以方便地自动化测试和集成到 CI/CD 流程中。

  2. 2. 支持多种输出格式:Newman 支持多种输出格式,包括 HTML、JSON 和 JUnit 格式,方便用户在不同场景下使用。

  3. 3. 并发执行:Newman 支持并发执行测试,从而提高了测试的效率。

  4. 4. 轻量级:与 Postman GUI 相比,Newman 是一个轻量级的工具,因此在运行测试时需要更少的资源。

总之,Postman 和 Newman 是现代 API 测试的重要工具,它们提供了强大的功能,可以使 API 测试变得更加高效、准确和自动化。

除了上述提到的功能和特点,Postman 和 Newman 还有其他一些重要的功能和优势:

  1. 1. 集成:Postman 和 Newman 可以与许多其他工具和服务进行集成,例如 GitHub、Jenkins、Slack 等。这使得它们可以轻松地集成到开发和部署流程中,以实现更高效的 API 开发和测试。

  2. 2. 文档生成:Postman 可以使用 API 的请求和响应来生成 API 文档。这可以使 API 文档更加准确和及时。

  3. 3. 测试脚本:Postman 可以使用 JavaScript 编写测试脚本,这可以使测试变得更加灵活和自定义。用户可以轻松地编写自定义测试脚本,以确保 API 的行为符合预期。

  4. 4. 历史记录:Postman 可以存储 API 请求的历史记录,这可以方便用户查看和管理以前的请求和响应。这对于调试和问题排查非常有用。

  5. 5. 多平台支持:Postman 和 Newman 可以在多种平台上运行,包括 Windows、MacOS 和 Linux 等。

总之,Postman 和 Newman 是现代 API 测试和开发的强大工具。它们提供了丰富的功能和灵活的测试脚本,可以帮助开发人员和测试人员更快、更准确地构建和测试 API。

项目依赖

需提前安装好以下环境

  • •  nodejs, demo 版本为 v21.1.0

  • •  Postman 安装完成,可通过官方网站下载安装包进行安装

项目文件结构

以下是一个 Postman 和 Newman 的接口自动化测试项目的文件结构,其中包含了测试配置文件、测试用例文件、测试工具文件和测试报告文件。可进行参考。

Postman-Newman-demo
├── README.md
├── package.json
├── package-lock.json
├── Data // 测试配置文件
│   └── testdata.csv // 测试数据
├── Testcase // 测试用例文件夹
│   └── APITestDemo.postman_collection.json // 测试用例文件
├── Env // 不同测试环境文件夹
│   └── DemoEnv.postman_environment.json // 测试环境配置文件
├── Report // 测试报告文件
│   └── report.html
├── .gitignore
└── node_modules // 项目依赖

从 0 到 1 搭建 Postman 接口自动化测试项目

下面会介绍从 0 到 1 搭建一个 Postman 和 Newman 的接口自动化测试项目,包括测试配置、测试用例、测试环境、测试工具和测试报告等。

可参考 demo 项目:https://github.com/Automation-Test-Starter/Postman-Newman-demo

新建项目文件夹
mkdir Postman-Newman-demo
项目初始化
// 进入项目文件夹下
cd Postman-Newman-demo
// nodejs 项目初始化
npm init -y
安装依赖

目前 newman 最新版本在 html 测试报告的一些包兼容性上有问题,所以这里使用 4.2.3 版本

// 安装 newman
npm install newman@4.2.3 --save-dev
Postman 编写接口测试用例
新建 Collection 和 Request
  1. 1. 打开 Postman,点击左上角的 New 按钮,选择 Collection,输入 Collection 的名称,点击 Create Collection 按钮,创建一个名称为 demo 的 Collection。

  2. 2. 在 Collection 中,点击右上角的三个点,选择 Add Request,输入 Request 的名称,点击 Save 按钮,创建一个 Request 命名为 get-demo。再添加一个 Request 命名为 post-demo。

编辑 Request 和编写测试用例

可根据项目文件下的 demoAPI.md 文件中的接口文档,获取 demo 使用的 Request 的 URL、请求方法、请求头、请求体等信息。

get-demo
  • • 在 get-demo 的 Request 中,选择 GET 请求方法,输入 URL 为https://jsonplaceholder.typicode.com/posts/1

  • • 在 Headers 中,添加一个 Key 为 Content-Type,Value 为 application/json; 的请求头。

  • • 在 Tests 下,添加以下脚本,用于验证响应结果:

pm.test("res.status should be 200", function () {pm.response.to.have.status(200);
});
pm.test("res.body should be correct", function() {var data = pm.response.json();pm.expect(data.id).to.equal(1);pm.expect(data.title).to.contains('provident');
});
  • • 点击 Send 按钮,发送请求,验证响应结果。

确认响应结果正确后,点击 Save 按钮,保存 Request。

post-demo
  • • 在 post-demo 的 Request 中,选择 POST 请求方法,输入 URL 为https://jsonplaceholder.typicode.com/posts

  • • 在 Headers 中,添加一个 Key 为 Content-Type,Value 为 application/json; 的请求头。

  • • 在 Body 中,选择 raw,选择 JSON 格式,输入以下请求体:

{"title": "foo","body": "bar","userId": 1
}
  • • 在 Tests 下,添加以下脚本,用于验证响应结果:

pm.test("res.status should be 201", function () {pm.response.to.have.status(201);
});
pm.test("res.body should be correct", function() {var data = pm.response.json();pm.expect(data.id).to.equal(101);pm.expect(data.title).to.equal('foo');
});

确认响应结果正确后,点击 Save 按钮,保存 Request。

Postman 编写测试环境配置文件

下面会取接口请求的 host 为环境变量来进行 demo

添加环境变量
  • • 在 Postman 的右上角,点击齿轮图标,选择 Manage Environments,点击 Add 按钮,输入环境名称为 DemoEnv,点击 Add 按钮,创建一个名称为 DemoEnv 的环境。

  • • 编辑环境变量,添加一个 Key 为 host,Value 为https://jsonplaceholder.typicode.com的环境变量。

  • • 点击 Add 按钮,保存环境变量。

更新 Request
  • • 在 get-demo 的 Request 中,更新 URL 为{{host}}/posts/1

  • • 在 post-demo 的 Request 中,更新 URL 为{{host}}/posts

验证环境变量
  • • 在 Postman 的右上角,点击齿轮图标,选择 DemoEnv,切换环境变量为 DemoEnv。

  • • 选择 get-demo 的 Request,点击 Send 按钮,发送请求,验证响应结果。确认响应结果正确后,点击 Save 按钮,保存 Request。

  • • 选择 post-demo 的 Request,点击 Send 按钮,发送请求,验证响应结果。确认响应结果正确后,点击 Save 按钮,保存 Request。

导出环境变量和测试用例文件
  • • 在 Postman 的右上角,点击齿轮图标,选择 Export,选择 DemoEnv,点击 Export 按钮,导出环境变量。

  • • 选择 get-demo request 和 post-demo request 所在的 demo Collection,点击右上角的三个点,选择 Export,选择 Collection v2.1,点击 Export 按钮,导出测试用例文件。

调整项目文件结构
新建 Env 和 Testcase 文件夹
  • • 在项目文件夹下,新建一个名为 Env 的文件夹,用于存放环境变量文件。

// 新建 Env 文件夹
mkdir Env
  • • 在项目文件夹下,新建一个名为 Testcase 的文件夹,用于存放测试用例文件。

// 新建 Testcase 文件夹
mkdir Testcase
调整用例文件和环境变量文件

将导出的环境变量文件和测试用例文件放到项目文件夹下的 Env 和 Testcase 文件夹下。

调整 package.json 文件
  • • 在 package.json 文件中,添加以下脚本,用于运行测试用例:

"scripts": {"test": "newman run Testcase/demo.postman_collection.json -e Env/DemoEnv.postman_environment.json"
}
运行测试用例
npm run test

 

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

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

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码第二十四天-寻找旋转排序数组中的最小值Ⅱ

寻找旋转排序数组中的最小值Ⅱ 题目要求 解题思路 二分法 当遇到两个left、right两个位置值相同时候&#xff0c;可以选择将 right right-1 代码 class Solution:def findMin(self, nums: List[int]) -> int:left,right0,len(nums)-1while left<right:mid(leftright…

基于session注册JAva篇springboot

springboot3全家桶&#xff0c;数据库 &#xff1a;redis&#xff0c;mysql 背景环境&#xff1a;邮箱验证码&#xff0c;验证注册 流程&#xff1a;先通过邮箱验证&#xff0c;发送验证码&#xff0c;将获取到的session和验证码&#xff0c;存入redis里&#xff08;发送邮箱…

社区店运营方案分享:从推广到盈利的实战经验

对于想要开实体店或创业的朋友们&#xff0c;社区店是一个具有很大发展潜力的选择。 作为一名鲜奶吧5年的创业者&#xff0c;我将分享一些从推广到盈利的实战经验&#xff0c;希望能给大家提供有价值的参考。 1、市场调研&#xff1a; 在开店之前&#xff0c;深入了解社区的…

python 基础知识点(蓝桥杯python科目个人复习计划59)

今日复习内容&#xff1a;做题 例题1&#xff1a;建造房屋 问题描述&#xff1a; 小蓝和小桥是两位年轻的建筑师&#xff0c;他们正在设计一座新的城市。 在这个城市中&#xff0c;有N条街道&#xff0c;每条街道上有M个位置可以建造房屋&#xff08;一个位置只能建造一个房…

王道机试C++第 3 章 排序与查找:排序问题 Day28(含二分查找)

查找 查找是另一类必须掌握的基础算法&#xff0c;它不仅会在机试中直接考查&#xff0c;而且是其他某些算法的基础。之所以将查找和排序放在一起讲&#xff0c;是因为二者有较强的联系。排序的重要意义之一便是帮助人们更加方便地进行查找。如果不对数据进行排序&#xff0c;…

线性代数笔记13--正交向量和正交子空间

0. 四个子空间 1. 正交向量 两向量点乘为0&#xff0c;向量正交。 A ⊤ B 0 A^{\top}B0 A⊤B0 勾股定理 ∣ ∣ x ∣ ∣ 2 ∣ ∣ y 2 ∣ ∣ ∣ ∣ x y ∣ ∣ 2 ||x||^2||y^2||||xy||^2 ∣∣x∣∣2∣∣y2∣∣∣∣xy∣∣2 验证正交条件 ∣ ∣ x ∣ ∣ 2 x ⊤ x x x ⊤ ∣…

Qt ini配置文件

ini文件用于保存用户的设置操作&#xff0c;下列以背景颜色设置为例子 暂时默认设置为白色背景 这段代码放置在主窗口的构造函数中&#xff0c;用于初始化读取ini文件 QString color;QSettings *set new QSettings("color.ini",QSettings::IniFormat);set->begi…

Python语言基础与应用-北京大学-陈斌-P32-31-计算和控制流-上机练习:创建并调用函数-字符集合的并集-上机代码

Python语言基础与应用-北京大学-陈斌-P32-31-计算和控制流-上机练习&#xff1a;创建并调用函数-字符集合的并集-上机代码 本文环境&#xff1a; win10 Thonny4.1.4 # 函数训练字符集合的并集 def my_union(str1,str2):list1 []list2 []i 0 while i < len(str1):lis…

OpenAI官方发文:对于马斯克起诉Opanai的看法

双方立场 马斯克的观点&#xff1a;投入资金将OpenAi并入特斯拉&#xff0c;实现从非盈利组织到盈利组织的转变。 OpenAi的观点&#xff1a;OpenAI 的使命是确保 AGI 惠及全人类&#xff0c;需要筹集资金搞研发&#xff0c;以非盈利组织模式运营&#xff0c;不急于实现盈利。盈…

钉钉群内自定义机器人发送消息功能实现

文章目录 钉钉群内自定义机器人发送消息功能实现1、设置webhook自定义机器人2、查看官方文档&#xff0c;使用open api3、编写业务代码4、发送成功结果如下 钉钉群内自定义机器人发送消息功能实现 1、设置webhook自定义机器人 设置关键词 添加完成后&#xff0c;获得改机器人的…

为什么 JavaScript 中的 0.1 + 0.2 不等于 0.3

本文作者为 360 奇舞团前端开发工程师 在使用 JavaScript 处理运算时&#xff0c;有时会碰到数字运算结果不符合预期的情况&#xff0c;比如经典的 0.1 0.2 不等于 0.3。当然这种问题不只存在于 JavaScript&#xff0c;不过编程语言的一些原理大致相通&#xff0c;我以 JavaSc…

Matter 笔记1-环境准备,编译

不要远程登录Ubuntu输入以下命令&#xff0c;原因&#xff1a;ubuntu/linux上的http代理设置 1. 准备 1.1 工具 Ubuntu 22.04 LTSClash 里General的端口设置到ubuntu 的网络设置里 1.2 代码 这里使用芯科整理过的代码 git clone https://github.com/SiliconLabs/matter.…