【Postman工具】
一.接口扫盲
1.什么是接口?
接口是系统之间数据交互的通道。拿小红到沙县点餐为例:小红想吃鸭腿饭。她要用什么语言来表达?跟谁表达?通过什么表达?按照生活习惯应该是:小红根据菜单对服务员用中文表达她想要一份鸭腿饭。这里中文作为小红和服务员的共同语言标准,菜单作为一个规范。迁移到浏览器和服务器上:浏览器和服务器通过http协议(中文)进行通信,通过接口规范文档(菜单)发送符合规定的报文才能得到响应服务。
2.接口测试的意义是什么?
接口测试可以理解为不借助前端,提前对后端接口进行测试,提早发现问题解决问题。
3.什么是接口测试?
接口测试用来校验响应数据与预期结果是否一致、逻辑依赖关系是否正确。(逻辑以来关系:比如退出登录以后再打开订单链接,是否会跳转到登录页面。)
4.什么是自动化接口测试?
自动化接口测试是使用工具和代码代替人工的测试方法,主要依赖断言。
5.接口测试从哪些方面入手?
单接口测试和多接口测试。
单接口测试分为正向测试(必填参数组合、必填+非必填组合)和反向测试(功能异常、数据异常、参数异常)。
多接口测试需要考虑业务场景,如登录后跳转页面。
6.接口测试与手工测试的不同?
手工测试时可以根据页面的功能按钮、输入框来进行测试,而接口测试没有输入框,可以利用抓包工具获取到对应的key,针对key所应对的value值进行测试。
7.接口测试用例怎么写?
单接口测试用例:以登录为例
多接口测试用例:以后台管理用户为例
登录->添加用户->查询->修改用户->查询->删除用户->查询
8.怎么界定RESTful风格的接口?
传统的接口测试只有post和get方法,且url不唯一。
RESTful风格的接口有四种方法:post增加、get查询、delete删除、put修改,且url唯一。
9.接口文档的作用?
帮助前端和后端工作人员进行工作对接。
帮助测试人员编写测试用例。
帮助新入职的员工快速接手项目。
10.f12抓包需要关注的内容
二.HTTP协议
HyperText Transfer Protocol超文本传输协议,是一种用于请求和响应的应用层协议。
协议特点:支持客户端服务器模式,简单快速,无连接无状态(B/S模式)
URL:Uniform Resource Locator 统一资源定位符,用来定位资源。

协议:http、https
域名:IP地址,可以定义到环境中的一台主机
端口号:在主机上定义到具体的应用。默认端口号被省略就跟随协议。
--mysql默认端口号:3306
--redis默认端口号:6379
--http协议默认端口:80
--https协议默认端口:443
资源路径:对应网页源代码或数据资源
--资源路径可以为空
--如果有查询参数,资源路径为?之前 / 之后的所有内容
--如果没有查询参数,资源路径就从端口号到结束
查询参数:传递参数给源代码,一定是k=v格式。
(一).HTTP请求
工具:fiddler进行抓包验证
特点:由客户端发送给服务器
格式:请求行、请求头、空行、请求体(get请求没有请求体)
请求行(请求方法、url、协议版本)
作用:指定请求方法和请求资源
格式:请求方法(空格)url(空格)协议版本(\r\n)
请求方法:GET查询、POST新增(登录注册用)、PUT修改、DELETE删除
url:数据资源定位符,协议://域名:端口号/资源路径?查询参数&查询参数
请求头
作用:向服务器描述浏览器的基本信息
格式:全是key : value的键值对
要重点记住两个:
User-Agent:向服务器描述浏览器类型
Content-Type:向服务器描述请求体的数据类型

请求体
GET、DELETE没有请求体
PUT、POST有请求体
请求体的数据类型,收请求头中Content-Type的值的影响
复习:

这个是fiddler抓包抓到的请求报文
1是请求行:请求方法是POST,url中http是协议类型,://是协议与域名的分割符,/是域名和资源路径的分割符,HTTP/1.1是协议版本号。
2-16是请求头:其中User-Agent是浏览器的类型,Content-Type是请求体的数据类型:表单类型
17是空行
18是请求体
(二).HTTP响应
特点:服务器发给浏览器(客户端)
格式:响应行、响应头、空行、响应体
响应行
格式:协议版本(空格)状态码(空格)状态码描述\r\n
协议版本:http1.0/ http1.1 / http2.0
状态码:
1xx:信息向
2xx:表成功
3xx:重定向
4xx:客户端错误。404表示数据资源不存在,403表示数据资源拒绝被访问
5xx:服务端错误。
状态描述:比如200ok,404Not Found,403Forbidden
响应头
作用:向客户端描述服务器的信息
语法:k : v键值对
Content-Type:向客户端描述响应体的数据类型
响应体
http报文响应,大多数都有响应体
数据类型受响应头中的Content-Type值影响,常见的类型:json/表单类型/图片类型
三.使用postman进行接口测试
postman是接口调试工具
newman插件可以自动生成测试报告
npm -v 检查是否安装了node.js
npm install -g newman 安装newman
newman -v 检查是否安装成功
npm install -g newman-reporter-html 最后一步
(一).基础使用
1.使用postman发送http请求,访问京东网站上”搜索“功能

2.使用postman向网易邮箱的登录接口发送一个密码错误的登录请求。

(二).管理测试用例collections

(三).导入导出用例

(三).断言
使用postman自带的断言机制,判断响应结果与预期是否一致。
1.断言响应状态码:Status code is 200

pm:postman的一个实例
test():postman的一个实例方法,有两个参数:
①“Status code is 200”,断言完成后的提示信息,可修改。
② function () { pm.response.to.have.status(200);}是匿名函数调用,意思是pm的响应状态有一个码值为200。

2.断言响应体是否包含某个字符串:Response body: Contains string
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

3.断言响应体是否等于某个字符串:Response body: ls equal to a string

4.断言json数据:Response body: JSON value check
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
分析:
var jsonData = pm.response.json();定义一个变量jsonData ,值为json格式的响应体数据
pm.expect(jsonData.value).to.eql(100);pm预期响应结果中xxx(key)的值为xxx
value可替换为:success、code、message、data
to.eql()中的值对应为预期结果:true、"操作成功”...

5.断言响应头:Response headers: Content-Type

四.全局变量和环境变量
全局变量
概念:在postman全局唯一且不可以重复的变量。
设置:pm.globals.set("var_name", value);
获取:
①请求参数(页面)中获取{{var_name}},用来查询参数、请求头、请求体中
②代码中获取:var value = pm.globals.get("var_name");
举例:
var age_tmp = 18;
pm.globals.set("glb_age",age_tmp);
var ret_age = pm.globals.get("glb_age")
环境变量
概念:某个环境中变量不可重复定义,常见的有开发环境、测试环境、生产环境。
设置:pm.environment.set("var_name", value);
获取:
①请求参数(页面)中获取{{var_name}}
②代码中获取:var value = pm.environment.get("var_name");
五.postman请求的前置脚本
1.时间戳
概念:表示当前系统时间。从1970年1月1日00:00:00-现在所经历的秒数
2.请求前置脚本
postman可以在http请求发送之前会自动执行该脚本中的代码,以准备请求发送前的环境和数据。

案例:调用百度首页接口,传时间戳给服务器
步骤:
1.创建“请求前置脚本”用例集和http请求页
2.指定请求方法为GET,百度网址http://www.baidu.com
3.在"Pre-request Script"标签页中写入代码,获取时间戳,写入到全局变量中
4.点击"send"按钮,使"Pre-request Script"标签页中的代码被自动执行,点击小眼睛图标,会发现多出一个全局变量。

5.在URL中借助请求参数使用全局变量。点击发送按钮,发送带有时间戳的请求。

6.点击菜单栏中view->ShowPostman Console中查看


六.postman关联
1.介绍:postman关联可以借助全局变量或环境变量来解决接口和接口之间的依赖问题。
2.实现步骤:
以A接口返回的数据供B接口使用为例
①.组织A接口http请求数据,发送A接口的请求
②.将A接口返回的响应数据存到全局/环境变量中
③.组织B接口http发送数据,从全局/环境变量中获取A接口返回的数据
3.案例:请求查询手机号接口,提取结果中返回的城市,将城市名给百度搜索接口使用。
①.查询手机号的页面以及url:https://api.wetools.com/tool/phoneNumber

②组织A接口http请求数据,发送A接口的请求

//获取响应数据
var jsonData = pm.response.json()
//获取城市名
var city = jsonData.data.detail["所属地区"]
//写入全局变量
pm.globals.set("glb_city", city)

③B接口获取到全局变量城市名,在百度中进行搜索

4.批量执行用例集


iterations:指定迭代次数(执行几次)
delay:用例执行延迟时间
data:导入外部数据文件,实现“参数化”
七.postman测试报告
步骤:
1.先把测试用例集导出
2.在用例集所在目录打开cmd,使用newman生成测试报告的完整命令:
newman run 测试用例集名.json -e 环境变量文件 -d 数据文件 -r html -- reporter-html-export 测试报告名称.html
ps: -e 环境变量文件 -d 数据文件,如果没有可省略

ps:可以复制路径到postman中
①:右键复制路径,选择bash

② 导入到postman中

相关文章:
【Postman工具】
一.接口扫盲 1.什么是接口? 接口是系统之间数据交互的通道。拿小红到沙县点餐为例:小红想吃鸭腿饭。她要用什么语言来表达?跟谁表达?通过什么表达?按照生活习惯应该是:小红根据菜单对服务员用中文表达她想要…...
全网超详细攻略-从入门到精通haproxy七层代理
目录 一.haproxy概述 1.1 haproxy简介 1.2 haproxy的主要特性 1.3 haproxy的优缺点 二.负载均衡介绍 2.1 什么是负载均衡 2.2 为什么用负载均衡 2.3 负载均衡类型 2.3.1 四层负载均衡 2.3.2 七层负载均衡 2.3.3 四层和七层的区别 三.haproxy的安装及服务 3.1 实验环…...
AI编程辅助工具:CodeGeeX 插件使用
CodeGeeX 插件使用 前言1.支持的平台2.安装步骤3.启用插件4.代码生成5.代码优化 前言 CodeGeeX 是一款基于 AI 技术的编程助手插件,旨在帮助开发者提高编程效率和代码质量。它能够智能生成代码、优化现有代码、自动生成文档以及回答编程相关的问题。无论您是初学者…...
sql注入实战——thinkPHP
sql注入实战——thinkPHP sql注入实战——thinkPHPthinkPHP前期环境搭建创建数据库开始寻找漏洞点输入SQL注入语句漏洞分析 实验错误 sql注入实战——thinkPHP thinkPHP前期环境搭建 下载thinkPHP文件 解压,将framework关键文件放到think-5.0.15中,改…...
MySQL 迁移 OceanBase 的 Oracle模式中,实现自增主键的方法
本文作者:赵黎明,爱可生 MySQL DBA 团队成员,熟练掌握Oracle、MySQL等数据库系统,擅长对数据库性能问题的诊断,以及事务与锁机制的分析等。负责解决客户在MySQL及爱可生自主研发的DMP平台日常运维中所遇到的各种问题&a…...
【C++ 面试 - 基础题】每日 3 题(十一)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...
ESP8266在线升级OTA固件
OTA的基本实现方式: ESP8266 的 OTA 实现有几种方式,常用的方式包括: 1、Arduino OTA:使用Arduino IDE提供的OTA功能,可以直接通过Arduino IDE上传固件到ESP8266。 2、Web OTA:ESP8266运行一个简易的Web服…...
精通C++ STL(六):list的模拟实现
目录 类及其成员函数接口总览 结点类的模拟实现 构造函数 迭代器类的模拟实现 迭代器类存在的意义 迭代器类的模板参数说明 构造函数 运算符的重载 --运算符的重载 运算符的重载 !运算符的重载 *运算符的重载 ->运算符的重载 list的模拟实现 默认成员函数 构造函数 拷贝…...
《雅思口语真经总纲1.0》话题实战训练笔记part1——6. Music
《雅思口语真经总纲1.0》笔记——第四章:口语素材大全(part1、part2、part3回答准则及练习方法,不包括范例答案)★★★★★ 文章目录 MusicWhen do you listen to music?20240804答评价注意事项1、在说到“no music”时ÿ…...
Python之赋值语句(多重赋值和交换赋值)
这是《Python入门经典以解决计算问题为导向的Python编程实践》73-74页关于赋值的内容。讲了Python中几种赋值方式。 赋值语句 1、最简单的赋值:ab2、多重赋值:a,b,c1,2,33、交换:a,bb,a 1、最简单的赋值:ab b可以是数字、字符串…...
网络协议七 应用层 HTTP 协议
应用层常见的协议 HTTP协议 1. 如何查看我们的http 协议全部的内容有哪些呢? 一种合理的方法是 通过 wireshark 软件,找到想要查看的HTTP --->追踪流--->HTTP流 来查看 结果如下:红色部分 为 发送给服务器的,蓝色部分为服务…...
uniapp vue 在适配百度小程序平台动态:style
uniapp vue 在适配百度小程序平台动态:style踩坑报错Unexpected string concatenation of literals 抖快平台动态style写法基本是 <view :style"{width: 686rpx, height: (setHeight 96) rpx}"> </view>这种写法在百度上会又解析报错: Une…...
【最小生成树】(二) Kruskal 算法
题目: 寻宝 题目描述 在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。 不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案…...
haproxy最强攻略
1、负载均衡 负载均衡(Load Balance,简称 LB)是高并发、高可用系统必不可少的关键组件,目标是 尽力将网络流量平均分发到多个服务器上,以提高系统整体的响应速度和可用性。 负载均衡的主要作用如下: 高并发…...
XetHub 加入 Hugging Face!
我们非常激动地正式宣布,Hugging Face 已收购 XetHub 🔥 XetHub 是一家位于西雅图的公司,由 Yucheng Low、Ajit Banerjee 和 Rajat Arya 创立,他们之前在 Apple 工作,构建和扩展了 Apple 的内部机器学习基础设施。XetH…...
在编程学习的海洋中,如何打造高效的知识宝库
目录 在编程学习的海洋中,如何打造高效的知识宝库一、笔记记录的重要性:为知识设立灯塔二、快速记录的策略:抓住知识的核心三、系统化的整理:构建个人知识体系四、实用工具推荐:为知识管理添砖加瓦五、保持条理性的秘诀…...
string详解(1)
1.C语言中的字符串 C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理&…...
Linux云计算 |【第二阶段】NETWORK-DAY4
主要内容: NAT 原理与配置(私有IP地址、静态NAT转换、Easy IP)、VRRP解析(主路由器、备份路由器、虚拟路由器、优先级) 一、NAT概述 NAT 网络地址转换(Network Address Translation)是一种网络…...
amazon linux使用密码登录或者root登陆
1. 首先要把创建root密码,如果原来的密码不记得了,可以直接用 sudo passwd -d root 删除原来的密码 然后创建root密码 sudo passwd root 2. 修改 sshd_config 文件 vim /etc/ssh/sshd_config 允许使用密码登录 PasswordAuthentication yes 允许root…...
集智书童 | CNN 与 Transformer 的强强联合:AResNet-ViT在图像分析中的优势 !
本文来源公众号“集智书童”,仅用于学术分享,侵权删,干货满满。 原文链接:CNN 与 Transformer 的强强联合:AResNet-ViT在图像分析中的优势 ! 作者针对残差CNN分支的注意力引导设计进行了消融实验。同时&a…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...




