快速掌握Postman实现接口测试

news2024/11/24 22:41:42

快速掌握Postman实现接口测试

Postman简介

Postman是谷歌开发的一款网页调试和接口测试工具,能够发送任何类型的http请求,支持GET/PUT/POST/DELETE等方法。Postman非常简单易用,可以直接填写URL,header,body等就可以发送一个请求,用来测试api接口非常方便。

Postman的优点 

  • 使用简单,无需搭建环境,直接使用,可以快速构建请求。
  • 保存以供以后回放使用。
  • Postman有响应结果的断言功能,可以用来写测试用例。
  • 可以把测试用例放在同一个目录下批量运行管理,可以设置迭代次数。
  • 可以设置环境变量,方便测试环境和生产环境使用同一套测试用例。
  • 调试结果方便查看。

安装Postman

支持chrome插件和独立应用,下方为应用下载地址。根据自己使用的操作系统,选择对应的版本。

官方网站:https://www.getpostman.com/apps

下载完成后,直接点击安装,首次打开会有登录页面,建议注册账号登录,这样所有历史记录和集合数据将会免费自动同步到云端,这样切换不同设备就可以快速使用历史数据了。

安装完成后界面:

整体布局 

 界面整体布局如下:

工具栏

 

  • 新建按钮:新建请求、集合、环境配置。
  • 导入按钮:导入Postman文件及文件夹。
  • 运行按钮:批量运行集合请求。
  • 新建窗口按钮:新建一个tab窗口。

  • 同步请求-同步请求数据到本地 抓包图标-使用Postman抓取API请求和cookie
  • 设置图标-应用程序设置
  • 通知图标-接收通知或广播 
  • 分享图标
  • 账户管理

左侧面板

右侧面板

 下面简单示例下Postman实现get和post请求

最常用的请求方法有GET,POST,PUT和DELETE,它们的区别如下:

  • GET请求:用于查询获取数据。
  • POST请求:创建或更新数据
  • PUT请求:更新数据
  • DELETE请求:删除数据

HTTP请求包含四个部分:URL,方法,header头部和body主体。

 构建GET请求示例

在url中输入https://postman-echo.com/get?name=xiaoming&sex=男

get请求的参数在URL中,上面说过了get请求是查询数据,所以参数类型就是查询参数。

构建POST请求示例 

常见post请求的传参方式
URL:https://postman-echo.com/post

方式一:表单提交,在body中选择x-www-form-urlencoded

等价于application/x-www-from-urlencoded,会将表单内的数据转换为键值对。

方式二:raw 传参

可以上传任意格式的文本,可以上传text、json、xml、html等,一般消息主体是序列化的JSON字符串。

方式三:Form-data 传参

就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。

https://postman-echo.com/post

断言

 Postman添加响应处理,通过检查响应数据是否符合预期来判断用例是否通过。Postman提供了很多常用断言方式:比如对响应状态码、响应内容等进行断言。Postman的代码片段功能已经把常见的断言代码示例已经给我们写好了,大家直接可以选择使用。

常见的断言代码如下:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
});
pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
});
var jsonObject = xml2Json(responseBody);

上述test['XXX']中"XXX",可以根据需要自行修改提示,运行完成后,在下方Test Results显示我们所定义的提示语句和测试结果。如果为 PASS ,测试通过,如果为FAIL,测试失败。

断言示例

创建集合并批量运行测试用例 

集合,即是postman中的Collections,类似文件夹,可以把同一个项目的请求放在一个集合里方便管理和分享。测试人员下次测试可以直接从集合中找到要执行的测试case。可以让单个的request分组到一起,对每个request都有很多个testcase,都分组收藏到集合里面,进行自动化测试和回归测试。如果想将自己的集合分享给团队内其他人,可以点击Share按钮进行分享。

1.创建测试集:在左侧面板下点击New collections按钮。

2.创建多条测试用例,点击左侧save按钮,保存到创建的测试集中

 3.点击测试用例集边上右边的run按钮,或者顶部菜单栏的Runner进行运行。

4.选择环境信息、迭代次数、请求的等待时间。

 

 5.运行结果

 

环境变量和全局变量 

接口测试时,为了方便修改和管理环境和参数,我们会把域名信息和请求的固定参数设为环境变量,把接口参数的请求或者返回参数中的固定值设为全局变量。

点击右上角的眼睛按钮,点击Add,输入环境名称,以及环境的参数和参数值。点击Edit添加全局变量名和变量值。

添加环境名称,以及具体的参数名和参数值。

添加全局变量,输入变量名和变量值。

修改上述用例

注:变量名要写在双花括号里,如下图:

生成python代码 

postman完成请求后,可以请求生成各种语言和框架的代码片段。

点击请求面板的code按钮,选择需要转换的语言。

默认是http模式

生成python请求代码,大家也可以试试转成其他语言。

 最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 

📌 博客主页: 程序员念姐
📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识!
📌 如果你也想学习软件测试,文末卡片有我的交流群632880530,加入我们,一起交流和学习!

 

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

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

相关文章

企业权限管理(十一)-角色操作

角色操作-查询所有 RoleController RequestMapping("/role") Controller public class RoleController {Autowiredprivate IRoleService roleService;RequestMapping("/findAll.do")public ModelAndView findAll() throws Exception {ModelAndView mv n…

网络通信TCP/IP协议逐层分析数据链路层(第四十课)

Ethernet Ⅱ帧,也称为Ethernet V2帧,是如今局域网里最常见的以太帧,是以太网事实标准。如今大多数的TCP/IP应用(如HTTP、FTP、SMTP、POP3等)都是采用Ethernet II帧承载。 1、MAC地址概述 -MAC地址,即以太网地址,用来标识一个以太网上的某个单独设备或一组设备 -长度…

SGL论文中相关公式推导

SGL论文中相关公式推导 题记对文中公式14到15进行推导对文中公式16进行解析对文中公式20进行补充说明对文中公式21进行补充说明参考博文及感谢 题记 关于Wu2021_SIGIR_paper_Self-supervised graph learning for recommendation》这篇文章已经有很多大神整理过了,具…

TVP走进南京文投:数字化浪潮下,文旅业如何迈向发展“快车道”?

引言 随着数字经济的蓬勃发展,文旅业也面临着数字化浪潮的冲击与挑战。如何实现数字技术与文化内涵的有机结合,成为行业内绕不开的热点话题。8 月 4 日,腾讯云 TVP 联合腾讯文旅,携手南京文投集团,在南京大报恩寺遗址景…

【QGIS】处理带坐标的Excel、csv格式的数据文件

1、场景描述 项目中客户提供了某地区的地址数据Excel,让我发布地图服务。 2、处理过程 arcgis有导入Excel的功能,只需要指定横纵坐标和坐标系即可。可是我对arcgis不熟悉,查了一下QGIS是否有导入Excel的功能。暂时没查到直接导入Excel的文…

Redis持久化——RDB和AOF

Redis数据库是内存数据库,一旦出现服务宕机,那么内存中的数据就容易丢失。所以需要进行redis的持久化动作。 Redis持久化是指将Redis内存数据持存储到磁盘中,若出现了Redis服务宕机后,能够从硬盘中再恢复到Redis内存中。 Redis的持…

软件测试面试题【2023整理版(含答案)】

01、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答:有黑盒和白盒两种测试种类,黑盒有等价类划分方法 边界值分析方法 错误推测方法 因果图方法 判定表驱动分析方法 正交实验设…

现有的vue3+ts+vite项目集成electron

效果图 什么时Electron Electron是使用JavaScript,HTML和CSS构建跨平台的桌面应用程序框架。 Electron兼容Mac、Windows和Linux,可以构建出三个平台的应用程序。 现有的vue3项目集成Electron 安装依赖 原来有一个vue3+ts+vite+pnpm的项目,其中sub-modules是子项目,web是…

威海--游记

威海盛夏已至,气温攀升的同时,小伙伴们出去玩的心也都藏不住了。 作为离韩国最近的城市,不出国门就能轻松get到浓浓的“韩范儿”!从韩式建筑、小吃甜品,再到各种宝藏打卡小店,玩法超多,好吃好看…

计算机竞赛 python+opencv+深度学习实现二维码识别

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 pythonopencv深度学习实现二维码识别 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:3分 该项目较为新颖&…

__ob__: Observer 后缀的数组的取值方式

开发中,经常从接口、父组件中,拿到数组然后给新的数组使用, 但是,有时候会发现带有 __ob__: Observer 后缀的数组,对这种数组来说,你是无法取到这个数组的值的, 而且,离谱的是consol…

【广州华锐互动】物联网工程VR虚拟课件有哪些特色?

物联网工程VR虚拟课件由广州华锐互动制作,是一种利用虚拟现实技术,将物联网的概念和应用场景通过模拟的方式呈现给学生的教学工具。相比传统的教学方式,物联网工程VR虚拟课件具有以下特色: 1.交互性强 物联网工程VR虚拟课件可以让…

七夕音乐照片墙制作教程,打造独一无二的浪漫礼物

大家好,我是机灵鹤。 一年一度的七夕马上到了。 我准备送女朋友一个亲手制作的,有创意的,有程序员特色的礼物。 女朋友特别喜欢林俊杰,于是我决定做一个林俊杰歌曲的 NFC 音乐相框 送给她 。 只需要用手机 NFC 在歌曲照片上贴…

韧性数据安全体系组成:多层级快速响应 |CEO专栏

风险是可以具象化和可感知的对象,是数据安全的衡量标准之一,上期「构建适应性进化的韧性数据安全体系」专栏,对韧性数据安全体系的组成-适应性动态风险展开介绍。 本期内容,将介绍韧性数据安全体系的另一个重要组成—多层级快速响…

Dubbo 与 gRPC、Spring Cloud、Istio 的关系

很多开发者经常会问到 Apache Dubbo 与 Spring Cloud、gRPC 以及一些 Service Mesh 项目如 Istio 的关系,要解释清楚它们的关系并不困难,你只需要跟随这篇文章和 Dubbo 文档做一些更深入的了解,但总的来说,它们之间有些能力是重合…

家纺家居小程序商城搭建指南

随着移动互联网的快速发展,小程序成为了商家们开展电商业务的重要方式之一。家纺家居行业作为一个庞大的市场,也可以通过搭建小程序商城来实现线上销售。下面就为大家介绍一下如何搭建家纺家居小程序商城。 首先,我们需要找一个专业成熟的小程…

el-tree通过default-expand-all动态控制展开/折叠

1、如下图通过勾选框动态控制展开/折叠&#xff0c;全选/清空 2、实现方式如下&#xff1a;定义key&#xff0c;监听checked2修改treeKey&#xff0c;重新渲染tere&#xff1b;附加全选和清空。 <div class"tree"><el-checkbox v-model"checked1"…

Salesforce 为什么能够在 CRM 市场获得成功?

Salesforce 为什么能够在 CRM 市场获得成功&#xff1f; 虽然salesforce有着水土不服&#xff0c;数据安全等问题&#xff0c;但依旧受到了国内CRM系统使用者的追捧。 但是近年来国内的一些CRM平台也做得很不错了&#xff0c;我认为没必要执着于非本土系统。 下面就以一个CR…

【C语言】静态通讯录 -- 详解

一、实现目标 1、功能 保存 1000 个联系人的信息添加联系人删除联系人修改联系人查找联系人排序 2、个人信息&#xff08;结构体&#xff09; 名字年龄性别电话地址 二、创建文件 test.c&#xff08;专门测试通讯录的功能&#xff09;contact.c&#xff08;接口的实现&#xf…

物联网智慧安防实训综合实训基地建设方案

一、系统概述 物联网智慧安防实训综合实训基地是一个为学生提供综合实践、培养技能的场所&#xff0c;专注于物联网技术与智慧安防应用的培训和实训。通过物联网智慧安防实训综合实训基地的建设和运营&#xff0c;学生可以在真实的环境中进行实践训练&#xff0c;提高其物联网技…