postman使用——在公司的项目落地回顾总结

背景

使用postman做接口自动化以及有差不多一年了,迭代更新了也差不多一年了,本篇文章主要介绍与总结:

  1. 为什么使用postman做自动化
  2. 如何使用postman做接口自动化
  3. 实际落地的方案实施
  4. postman优势与限制

为什么使用postman做接口自动化

有以下几个角度来考虑,这里面其实涉及到一个自动化产品选型。
公司层面:
去年的时候,公司的各个产品线是割裂开来,各个子产品都有各个子产品的产品线,测试团队,研发团队。因此一开始在自动化脚本选型阶段并没做到统一规划,导致了有的团队使用postman,有的团队使用python。

现实层面:
虽然有实际的问题,但从现实层面来说,去年公司公司降本提效,人员收缩,再投入一部人去直接开启自动化脚本的实施,其实也比较耗费人力,也会导致迭代需求的测试不充分,质量无法保障。考虑到现状后,也比较倾向于能够有快速收效的自动化实现

产品层面:
公司的子产品较多,各个子产品的测试方式以及架构还不太一样,有的倾向于用户,比较上层,有的则是比较底层,针对的是各数据源链路的测试,比如MySQL-MySQL、MySQL-Oracle等等,因此考虑到这一层,有的子产品是比较适合使用python来实现,有的用postman来实现。而我负责的产品刚好是比较倾向于上层,使用postman更加快速且省事

postman是一款相对很成熟的接口测试工具,应该是每个程序员或相关人员都有接触过,使用成本低。
一、易用性

界面友好

Postman 拥有直观、简洁的用户界面,无需复杂的配置即可快速上手。无论是新手还是有经验的测试人员,都能轻松地在 Postman 中进行操作。对于创建和管理接口请求,它提供了可视化的操作环境,例如通过简单的表单填写就能完成一个接口请求的参数配置,包括请求方法(GET、POST 等)、URL、请求头和请求体等。

脚本编写便捷

Postman 支持在请求中编写测试脚本。它使用 JavaScript 作为脚本语言,这是一种广泛使用且容易学习的编程语言。在 Pre - request Script(请求前脚本)和 Tests(测试脚本)标签页中,可以方便地编写代码来实现请求前的参数预处理和请求后的结果验证等操作。例如,可以在测试脚本中编写断言来验证接口返回的状态码是否为 200,或者验证返回数据中的某个字段是否符合预期。

二、功能丰富

请求类型全面支持

能够处理各种类型的 HTTP 请求,包括常见的 GET、POST、PUT、DELETE 等,还支持一些不太常见的请求方法,如 PATCH、OPTIONS 等。无论是简单的查询接口还是复杂的资源更新接口,Postman 都能很好地满足测试需求。对于 POST 请求,它可以方便地设置不同类型的请求体格式,如 JSON、表单数据、XML 等。

环境变量和全局变量管理

Postman 允许用户定义环境变量和全局变量。这对于处理不同环境(如开发环境、测试环境、生产环境)下的接口测试非常有用。通过设置变量,可以轻松地切换接口的基础 URL 等参数,而无需在每个请求中手动修改。例如,可以定义一个环境变量{{base_url}},在不同的环境配置文件中设置不同的值,这样在请求的 URL 中只需要引用这个变量,就可以在不同环境下进行测试。

集合和文件夹管理

可以将相关的接口请求组织成集合(Collections),并在集合内使用文件夹进一步分类。这种组织方式有助于对大规模的接口进行有条理的管理。例如,可以将与用户管理相关的接口放在一个集合中的 “用户管理” 文件夹下,将与订单管理相关的接口放在另一个文件夹下,方便查找和执行相关的测试。

数据驱动测试

支持数据驱动的测试方法。可以通过导入 CSV 或 JSON 格式的数据文件,对接口进行批量测试。例如,有一个注册接口,需要测试不同的用户名和密码组合是否能成功注册,可以将这些用户名和密码数据整理到 CSV 文件中,然后在 Postman 中配置数据驱动测试,让 Postman 自动使用这些数据逐一执行注册接口的测试。

三、集成能力

与 CI/CD 工具集成

Postman 可以与常见的持续集成 / 持续部署(CI/CD)工具(如 Jenkins、Travis CI 等)集成。这使得可以将接口自动化测试纳入到软件开发的整个流程中,实现每次代码提交后自动执行接口测试,及时发现接口相关的问题。例如,在 Jenkins 中配置一个任务,当代码仓库有新的提交时,自动触发 Postman 的测试集合运行,并将测试结果反馈给开发团队。

与其他工具协作

能够与其他开发和测试工具进行协作。例如,可以将 Postman 中的接口测试用例导出为多种格式(如 Newman、HAR 等),以便在其他工具中使用。同时,也可以从 Swagger 等 API 文档工具中导入接口定义,快速生成接口测试用例,提高测试用例的创建效率。

综上,使用postman来进行公司产品的自动化测试落地。

如何使用postman做接口自动化

这部分内容网上有很多参考资料,这里不做详细介绍。
简而言之,使用postman做接口自动化的关键就是处理好前后的传参
可参考之前的文章:Postman接口测试实战

实际落地的方案实施

1.项目上的压力
2.运维的压力
3.人员的压力
可执行脚本供项目上使用,快速验收
在实现自动化的过程中,一般需要研发、运维、测试三方人员来实施整体的落地方案。

目的

  1. 减轻项目上验收压力(主要)
  2. 快速回归验收(次要)

这两项在自动化测试脚本未出来之前,占据了研发、运维、测试的很多时间,因此急需解决。

落地方案

  1. 编写脚本,做好核心代码与配置文件的分离,以为后边修改配置文件的参数就可在不同的环境下使用。如:
    在这里插入图片描述
    只要修改了配置文件的信息,就可以通过命令行直接执行

  2. 接入postman兼容的测试报告newman

  3. 在不同环境下,使用PyInstaller将执行引擎打包成可执行脚本,然后就可在不同的环境下使用,例如windows环境,Linux-arm、Linux-x86环境等环境使用,如下图:
    在这里插入图片描述
    当运维在项目上部署好服务之后,就可以直接拉脚本代码执行在不同的环境中执行,实现快速验收项目功能。

直接可使用以下命令进行执行:

windows示例
newman-win.exe  -c TEST.postman_collection.json -e TEST.postman_environment.json

linux x86示例
chmod +x ./newman-linux && ./newman-linux -c TEST.postman_collection.json -e TEST.postman_environment.json

linux arm示例
chmod +x ./newman-linux-arm && ./newman-linux-arm  -c TEST.postman_collection.json -e TEST.postman_environment.json

然后会自动生成一个测试报告,通过查看测试报告,就可以知道对应的接口信息了。
在这里插入图片描述
失败的话,也可以通过测试报告,查看报错的信息,快速定位解决问题。

以前项目没部署一次或升级一次都需要对应产品线的测试人员去进行验收,现在直接可以拉脚本使用,无门槛、傻瓜式验收,直接将效率提升80%,以前需要3人天,现在只需要半小时即可验收完4个子产品。

postman优势与限制

优势就不多言了,上面为什么选择postman原因之一就是postman本身的产品优势。这里可聊聊它的限制。

一、脚本编写的局限性

  1. 编程语言的限制
    Postman 主要使用 JavaScript 进行脚本编写。虽然 JavaScript 是一种广泛应用的编程语言,但对于一些特定的测试场景,如果需要使用其他编程语言特有的功能或库,Postman 就无法满足。例如,若需要使用 Python 中的某些数据处理库,如我们在业务上需要使用到starrocks进行建表与关联,在 Postman 环境下是无法实现的。因此, 这里我们又使用python来进行操作,分成了两个脚本。
  2. 复杂逻辑处理能力相对较弱
    当面对极其复杂的业务逻辑测试时,Postman 的脚本编写能力可能显得捉襟见肘。例如,在涉及多层嵌套循环、复杂的条件判断和大量数据运算的场景下,在 Postman 中编写和维护这样的测试脚本会变得非常困难。与专业的集成开发环境(IDE)相比,Postman 缺乏一些有助于代码调试和优化的高级功能。

二、测试数据管理的局限性

  1. 大规模数据处理不便
    对于大规模的测试数据管理,Postman 存在一定的局限性。当测试数据量达到一定规模,例如需要处理数千条甚至更多的测试数据时,在 Postman 中导入、管理和操作这些数据会变得低效。例如,在使用 CSV 或 JSON 文件进行数据驱动测试时,如果数据文件过大,可能会导致加载缓慢,并且在数据操作过程中容易出现性能问题。这也是为什么在问答系统里面,我们觉得要把自动化的实现移动到python上面去
  2. 数据安全性问题
    Postman 本身对于测试数据的安全性保障有限。如果涉及到敏感数据(如用户的登录密码、支付信息等)的接口测试,在 Postman 中存储和使用这些数据存在一定风险。虽然可以采取一些措施(如环境变量加密等),但这些方法的安全性相较于专业的数据安全管理工具还是较为薄弱的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ORACLE在企业中的运用及岗位介绍

微思 | Oracle 19C OCP 认证培训 厦门面授班 | 全国直播班 同步上课 课程介绍:Oracle OCP 19C课程介绍 培训讲师—吴振兴 往期考试战报:【ORACLE战报】 OCP 认证 OCP :Oracle 数据库认证专家( Oracle Certified Professional…

【Linux系列】在 Linux 中使用 `watch` 命令监控 Docker 容器状态

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【Linux】僵尸进程和孤儿进程

一、僵尸进程 何为僵尸进程? 在 Unix/Linux 系统中,正常情况下,子进程是通过父进程创建的,且两者的运行是相互独立的,父进程永远无法预测子进程到底什么时候结束。当一个进程调用 exit 命令结束自己的生命时&#xff…

FineReport 全局参数

全局参数与模板参数的区别如下: 1)全局参数:当前工程下的所有模板都可以使用。 2)模板参数:只有当前模板才可以使用 注:全局参数 area 并不是在当前模板下创建的,但是可以在模板中直接调用 全…

C++ 十进制数转换成7进制字符串

题目要求&#xff1a; 给定一个整数 num&#xff0c;将其转化为 7 进制&#xff0c;并以字符串形式输出。 C源码&#xff1a; #include "stdafx.h" #include <String> using namespace std;string convertToBase7(int num) {int tempNum num;char t;string…

WGCLOUD可以监控GPU吗

可以的 采集主机GPU信息功能&#xff0c;是WGCLOUD v3.5.5新增的一个功能模块&#xff0c;所以需要升级到v3.5.5或者以上版本 我们在主机管理的列表页面&#xff0c;点击【查看更多】->【扩展监控】按钮&#xff0c;就可以看到该主机的GPU信息 agent每间隔10分钟就会采集一…

DES对称加密算法

DES&#xff08;Data Encryption Standard&#xff0c;数据加密标准&#xff09;是一种对称加密算法。 算法概述 加密类型&#xff1a;对称加密&#xff08;同一密钥用于加密和解密&#xff09;。密钥长度&#xff1a;64位&#xff08;8字节&#xff09;&#xff0c;其中有效…

基于SSM网络在线考试系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;在线考试管理&#xff0c;试题管理&#xff0c;考试管理&#xff0c;系统管理 前台账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;在线考试&#xff0c;公告信…

最新物流行业CRM系统应用数字化解决方案

因势利导 ——全球化物流的挑战与机遇 在全球经济一体化与互联网技术快速发展的双重驱动下,物流行业正经历着前所未有的变革时期。这一变革不仅影响 着行业的发展模式,还对运营效率和客户体验提出了新的要求。 随着市场需求的不断演变,物流行业已呈现出多元化和专业 化并行的发…

OpenCV双目视觉三角测量代码实现C++

在双目视觉系统中&#xff0c;三角测量是一种基于几何原理的三维重建技术&#xff0c;通过分析同一场景在两个不同视角下的二维图像来确定物体的三维坐标。这种方法的核心在于利用摄像机的内参和相对位姿&#xff08;由旋转矩阵和平移向量描述&#xff09;&#xff0c;将图像中…

数据科学家必须掌握的12个Python功能

Python 已经成为数据科学家的必选语言&#xff0c;从数据处理到机器学习&#xff0c;它几乎无所不能。本文将探讨一些Python特性&#xff0c;这些特性不仅能帮助你编写更高效、更易读、更易维护的代码&#xff0c;还特别适合数据科学的需求&#xff0c;使你的代码简洁且优雅。 …

mysql8 使用idb文件实现数据备份

文章目录 1.备份脚本示例2.设置 Cron 任务3. 数据恢复 本文档只是为了留档方便以后工作运维&#xff0c;或者给同事分享文档内容比较简陋命令也不是特别全&#xff0c;不适合小白观看&#xff0c;如有不懂可以私信&#xff0c;上班期间都是在得 需求&#xff0c;在离线情况下实…

【Linux】————磁盘与文件系统

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;Linux 创作时间 &#xff1a;2024年10月17日 一、磁盘的物理结构 磁盘的物理结构如图所示&#xff1a; 其中具体的物理存储结构如下&#xff1a; 磁盘中存储的基本单位为扇区&#xff0c;一个扇区的大小一般为512字…

研发运营一体化(DevOps)能力成熟度模型

目录 应用设计 安全风险管理 技术运 持续交付 敏捷开发管理 基于微服务的端到端持续交付流水线案例 应用设计 安全风险管理 技术运 持续交付

14 django管理系统 - 注册与登录 - 注销

首先先创建注销的入口&#xff0c;在base.html中修改 <ul class"nav navbar-nav navbar-right"><li><a href"/account/login/">登录</a></li><li><a href"/account/register/">注册</a></l…

2024互联网大厂营收排名:京东/阿里/华为前三,超多技术岗都在热招!

2024年已经过去一大半&#xff0c;各大互联网大厂的竞争如火如荼&#xff0c;营收都取得了不俗的成绩&#xff0c;京东、阿里、华为分别占领前三&#xff01; 第四第五名则为华为和拼多多。 根据排行榜里的公司名单&#xff0c;小码特意为大家整理了一批各大厂的招聘岗位。 阿…

信息学奥赛复赛复习18-CSP-J2023-01小苹果-向上取整、向下取整、模拟算法

PDF文档回复:20241021 1 P9748 [CSP-J 2023] 小苹果 [题目描述] 小 Y 的桌子上放着 n 个苹果从左到右排成一列&#xff0c;编号为从 1 到 n。 小苞是小 Y 的好朋友&#xff0c;每天她都会从中拿走一些苹果。 每天在拿的时候&#xff0c;小苞都是从左侧第 1 个苹果开始、每隔…

微信碰一碰支付系统有哪些好的?教程详解抢先看!

支付宝“碰一碰支付”的风刚刚刮起来&#xff0c;它的老对手微信便紧随其后&#xff0c;推出了自己的碰一碰支付设备&#xff0c;再次印证了这个项目市场前景广阔的同时&#xff0c;也让与碰一碰支付系统相关问题的热度又上了一层楼&#xff0c;尤其是微信碰一碰支付系统有哪些…

设计模式(UML图、类之间关系、设计原则)

目录 一.类的UML图 1.类的UML图 2.类之间的关系 2.1 继承关系&#xff1a; 2.2关联关系 2.2.1单项关联 2.2.2双向关联 2.2.3自关联 2.3聚合关系 2.4组合模式 2.5依赖关系 二、设计三原则 2.1单一职责原则 2.2开放封闭原则 2.3依赖倒转原则 一.类的UML图 1.类的…

Originlab正态分布处理数据

一、图线绘制 首先&#xff0c;导入数据 点击左下角生成柱状图 绘制完成后&#xff0c;点击菜单栏【分析】-【拟合】-【非线性曲线拟合】-【打开对话框】 在函数中选择高斯即可 二、设置画布 宽、高为300.02 三、坐标轴格式 显示&#xff1a;上下左右轴 刻度线标签&#…