快速掌握Postman实现接口测试

快速掌握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请求代码,大家也可以试试转成其他语言。

  总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​

​​

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

 

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

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

相关文章

PiflowX组件-ReadFromUpsertKafka

ReadFromUpsertKafka组件 组件说明 upsert方式从Kafka topic中读取数据。 计算引擎 flink 有界性 Unbounded 组件分组 kafka 端口 Inport:默认端口 outport:默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子kafka_hostKAFKA_HO…

OpenSource - 基于Netty的网络扩展库HServer

文章目录 概述官网Hserver的理念特点原理图代码案例HelloWorld 概述 HServer是一个基于Netty开发网络扩展库.使用插件方式来扩展我们的业务 HServer提供 web,gateway,rpc 等插件 同时用户也可以自定义插件,来完成各种各样的业务场景。 官网 https://gitee.com/HSe…

计算机毕业设计 | SpringBoot+vue移动端音乐网站 音乐播放器(附源码)

1,项目背景 随着计算机技术的发展,网络技术对我们生活和工作显得越来越重要,特别是现在信息高度发达的今天,人们对最新信息的需求和发布迫切的需要及时性。为了满足不同人们对网络需求,各种特色,各种主题的…

一文带你弄懂 V8 数组的快速 / 字典模式

V8 是如何处理数组的&#xff1f; 问题 先抛出一个问题&#xff0c;下面两端代码哪个的效率更高&#xff1f; const arr []; for(let i 0; i < 10000000; i) {arr[i] 1; }const arr []; arr[10000000 - 1] 1; for(let i 0; i < 10000000; i) {arr[i] 1; }答案是…

一文搞定通过UTM 在MAC M1上安装Win11

Why 临近过年&#xff0c;一年一度的抢票大战就要开始。抢票软件要求安装在windows&#xff0c;作为mac资深用户&#xff0c;必须安装个windows虚拟机。 How step by step: follow YouTube。具体step follow YouTube 视频。本文&#xff0c;只说一下&#xff0c;特别容易错…

Unity中Shader面片一直面向摄像机(个性化修改及适配BRP)

文章目录 前言一、个性化修改面向摄像机效果1、把上一篇文章中求的 Z轴基向量 投影到 XoZ平面上2、其余步骤和之前的一致3、在属性面板定义一个变量&#xff0c;控制面片面向摄像机的类型4、效果 二、适配BRP三、最终代码 前言 在上一篇文章中&#xff0c;我们用Shader实现了面…

1.7 day5 IO进程线程

互斥锁 #include <myhead.h> char buf[128];//创建临界资源 pthread_mutex_t mutex;//创建锁 void *task(void *arg)//分支线程 {while(1){pthread_mutex_lock(&mutex);//上锁printf("分支线程:buf%s\n",buf);strcpy(buf,"I Love China");pthre…

mysql基础-表数据操作之查

目录 1.别名 2. 单表查询 2.1 模糊查询 - like 2.2 limit 2.3 order by 2.4 group by 2.5 in 2.6 between and 2.6 is null 2.7 not 2.8 运算符 3. 联表查询 全连接 左连接 右连接 本次分享一下数据的DQL语言。 1.别名 首先分享一下别名的知识。我们在查询的时…

【创建VirtualBox虚拟机并安装openEuler20.03 TLS SP1操作系统】

创建VirtualBox虚拟机并安装openEuler20.03 TLS SP1操作系统 一、环境说明二、安装过程 一、环境说明 虚拟机软件&#xff1a;Virtualbox操作系统&#xff1a;openEuler 20.03 TLS SP1&#xff08;x86&#xff09; 二、安装过程 创新虚拟机 修改虚拟机配置&#xff1a; …

MySQL复习汇总(图书管理系统)

MySQL图书管理系统&#xff08;49-94&#xff09;源码_71.备份book数据库到e盘的mybook.sql文件(备份文件中要求包含建库命令)-CSDN博客 -- 1、 创建一个名称为book的数据库。 -- 2、 打开book数据库 -- 3、 创建数据表分别如下&#xff08;除外键之外&#xff09;…

IDEA 中搭建 Spring Boot Maven 多模块项目 (父SpringBoot+子Maven)

第1步&#xff1a;新建一个SpringBoot 项目 作为 父工程 [Ref] 新建一个SpringBoot项目 删除无用的 .mvn 目录、 src 目录、 mvnw 及 mvnw.cmd 文件&#xff0c;最终只留 .gitignore 和 pom.xml 第2步&#xff1a;创建 子maven模块 第3步&#xff1a;整理 父 pom 文件 ① …

支付宝扫码(Easy版)支付实现

文章目录 一 技术准备1.1 二维码技术&#xff08;java&#xff09;1.2 支付宝沙箱环境准备1.3 内网穿透 二 支付宝支付相关知识2.1 各种支付方式2.2 扫码付接入流程2.3 系统交互流程(时序图)2.4 加密逻辑 三 扫码支付实现3.1 添加maven依赖&#xff08;Easy版&#xff09;3.2 完…

【Python发送邮件】

Python发送邮件 使用python的email和smtplib发送邮件 使用python的email和smtplib发送邮件 需要先下载安装 email 和 smtplib 模块 // An highlighted block pip install email smtplib需要去你的邮件地址申请一下 API Key&#xff0c;这是专门用来开发时使用的密钥。 获取后…

看CHAT如何判断php Imagick writeImages写入gif已经完毕

CHAT回复&#xff1a;Imagick::writeImages() 是同步执行的&#xff0c;也就是说这个函数会阻塞直到 GIF 文件被完全写出。所以如果这个函数没有报错并成功返回&#xff0c;那么你可以认为 GIF 文件已经被完全写出了。 如果你想要在写出 GIF 文件后立即做一些操作&#xff08;例…

学习c语言,隐形类型转换,整形提升

把整形定义字符型的话&#xff0c;字符型指挥提取整形前8位&#xff0c;但是整形有32位&#xff0c;如果字符型最后一位为0全部补0&#xff0c;为1全部补1。

测试分类篇

小王学习录 测试分类按测试对象划分1. 界面测试2. 可靠性测试3. 容错性测试4. 文档测试5. 兼容性测试6. 易用性测试7. 安装卸载测试8. 安全测试9. 性能测试10. 内存泄露测试 按是否查看代码划分1. 黑盒测试2. 白盒测试3. 灰盒测试 按开发阶段分1. 单元测试2. 集成测试3. 系统测…

WebofScience快速检索文献的办法

Web of Science为什么老是搜不到文章&#xff0c;原来是要在这个地方全部勾选 如果是搜标题的话&#xff0c;选Title&#xff0c;输入你要搜的文章标题 另外&#xff0c;也可以在浏览器直接搜文章标题&#xff0c;得到文章的DOI&#xff0c;然后选DOI&#xff0c;直接搜DOI也行…

draw.io基础操作和代码高效画图进阶

文章目录 一、基础操作1、链接2、等比例变形3、复制4、插入表格 二、在线打开三、插入—功能聚集地1、插入图片2、插入画笔3、插入布局4、导出 四、图码转换——高效画图1、通用图码转换2、流程图生成&#xff1a;使用mermaid语言生成图&#xff1a; 五、图码转换高效画图的典型…

超维空间M1无人机使用说明书——52、ROS无人机二维码识别与降落

引言&#xff1a;使用二维码引导无人机实现精准降落&#xff0c;首先需要实现对二维码的识别和定位&#xff0c;可以参考博客的二维码识别和定位内容。本小节主要是通过获取拿到的二维码位置&#xff0c;控制无人机全向的移动和降落&#xff0c;分为两种&#xff0c;一种是无人…

问题:为什么IP和端口一样的两个应用服务可以正常启动呢?

mysql安装 将MongoDB安装好并设置bindIP为0.0.0.0&#xff0c;端口为3306 发现问题&#xff0c;MySQL和MongoDB端口和IP一致&#xff0c;两个服务都能同时启动&#xff0c;这是为什么呢&#xff1f; 麻烦知道的大佬帮忙解答一下~~~