【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…...

Ubuntu基础使用指南
Ubuntu基础使用指南 Ubuntu作为一款流行的开源操作系统,以其稳定性、安全性和易用性著称。无论是作为服务器操作系统还是桌面操作系统,Ubuntu都能满足用户的各种需求。下面,我们将从Ubuntu的基础使用开始,带你深入了解这个强大的…...

怎样才算精通 Excel?
最强AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 高赞回答很系统,但普通人这么学,没等精通先学废了! 4年前,我为了学数据分析&#…...

怎么学算法并找到工作
1.基础 找一本基础的内容看一遍 时间复杂度、空间复杂度计算方式数组、队列、栈、树、图结构十大排序算法 2.《hello算法》 动画图解算法 https://www.hello-algo.com/chapter_hello_algo/ 3.《剑指Offer》 一些面试的高频有年度的题解 里么的题很有特色,而…...

【实时建图】MapTR(1)------ 论文详解
作者们提出了一种有效构建高清地图的方法(MapTR),该地图为自动驾驶系统的规划提供丰富且精确的环境信息。这是一种结构化端到端变换器,用于高效在线矢量化地图构建。作者提出了一种统一的置换等价建模方法,即将地图元素建模为一个具有一组等价置换的点集,这准确地描述了地…...

通用Builder工具类
假设有一个Java实体类定义: public class Request {private String type;private String op;private PageInfo pageInfo;public static class PageInfo {private Integer pageNum;private Integer pageSize;}// 省略getter和setter... }在代码中创建这个对象&#…...

开源免费的海报设计器vue-fabric-editor
vue-fabric-editor 是一个基于 Vue.js 和 Fabric.js 的创新前端富文本编辑器,它将传统的文本输入体验与图形设计元素相结合,为用户提供了全新的内容创作方式。 以下是关于 vue-fabric-editor 的详细介绍: 一、技术特点 框架结合:…...

【学习笔记】Day 4 - Day 5
一、进度概述 1、新机环境配置 2、《地震勘探原理》第一章 3、对 “DL-FWI 研究方向展望” 组会的一些想法 二、详情 1、新机环境配置 配置新机环境着实耗了较多时间,导致理论进度推进较慢。 2、《地震勘探原理》第一章学习笔记 相关笔记在另一篇…...

MySQL数据分析进阶(十四)保护数据库
※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!) 【中字】SQL进阶教程 | 史上最易懂S…...

排序算法之堆排序
title: 堆排序 date: 2024-7-23 15:48:25 0800 categories: 排序算法 tags:排序算法堆排序 description: 堆排序(Heap Sort)是一种基于堆的排序算法,具有较高的效率和稳定性。 math: true 堆排序 堆排序(Heap Sort)是…...

Python中的NLP宝库:探索顶级库与工具
标题:Python中的NLP宝库:探索顶级库与工具 Python,作为人工智能和机器学习任务中的关键编程语言,为自然语言处理(NLP)提供了丰富的库和工具。这些库不仅功能强大,而且大多数都是开源的…...