接口postman

前后端

前端:是肉眼所能见到的界面 

后端:处理数据,数据逻辑

接口:提供前后端交互的通道

接口测试:校验接口返回的响应数据是否与预期的一致

接口测试可以绕过前端,直接对服务器进行测试

请求方式 post get

响应回来结果 登录成功,登录失败 数据

实现方式:

postman/jmeter

python+request+unittest

java+httpClient

HTTP协议

超文本传输协议,基于请求与响应的应用层

特点:b/s模式,简单快速,灵活,无连接,无状态

完整语法格式:协议 :// IP地址:端口号/资源路径?查询参数

39.167.90.145 /www.baidu.com 一个ip地址可以对应多个域名

HTTP请求

产生于客户端

请求行

位于请求的第一行,包括请求方法,url,协议版本

请求方法:
GET:查询 —— 没有请求体
POST:添加 (注册、登录)
DELETE:删除 —— 没有请求体
PUT:修改

请求头

位于 请求行之下,空行之上的部分。 数据组织格式 一定是 k:v 对。

Content-Type : 作用,指定 请求体的数据类型。
application/json:请求体数据类型为json
application/x-www-form-urlencoded:请求体的数据类型 为 表单类型。

请求体

位于 空行 之下。
有的 请求协议 是没有请求体。如:get、delete
请求体的数据类型, 受 请求头中 Content-Type 的值影响。

携带的数据,以&为间隔

抓一个接口?需要关注

接口地址、接口参数、请求方式、响应内容

HTTP响应

产生于服务端,服务器收到客户端的请求协议之后才产生响应

响应行

/状态行:版本协议,状态码,状态码描述

状态码分为5类:

1xx 提示信息

2XX 成功

3XX 重定向

4XX 客户端错误

5XX 服务器错误

响应头

位于 响应行之下,空行之上的部分。 数据组织格式 一定是 k:v 对

响应体

位于 响应头之下 ,几乎所有 响应协议 都有响应体。
响应体中 包含的数据,是接口测试过程中,所要使用的 实际结果!!

接口规范

传统风格接口:采用get/post实现所有操作,状态码统一返回200, URL 与 资源不是 一一对应的。在 URL 中查看出,是何种操作

RESTful风格接口

接口使用的方法,与 http协议的 请求方法,一一对应。
get - 查、post - 增、put - 改、delete - 删
URL 与 资源 一一对应!不能从 URL 中,看出 是 何种操作。 需要通过 结合 请求方法 来识别何种操作。
响应状态码 使用较为全面。

接口测试流程

1. 需求分析(产品经理的需求文档)
2. 接口文档解析(开发编写的 接口API文档)
3. 设计 接口测试用例(编写 Excel 表格形式的用例)
4. 准备接口测试脚本
postman 工具 生成脚本
python 代码 编写脚本
5. 执行测试用例,跟踪缺陷
6. 生成 接口测试报告
7. 接口自动化持续集成(可选)

接口文档:API文档 一般由后端开发人员编写,用来描述接口信息的文档。

接口文档的作用
协同:团队人员工作协同配合
约束:项目更新修改同步维护
解析接口文档
为什么要解析
通过分析接口文档,熟悉接口信息。
通过接口文档获取,接口测试所使用的 请求数据、预期结果。
解析的核心目标
1. 请求报文关键数据
请求方法、URL、请求数据(请求头、请求体)
2. 响应报文关键数据
响应状态码、响应数据(响应体)

postman基本使用

get请求

post请求

接口用例设计

大致分为功能测试,性能测试,安全测试

功能测试

单接口:单独的业务,如登录业务,对应的登录接口

正向测试

必填参数组合 p0

必填+非必填组合 p2/p3

全部参数组合 p1

反向测试

1.功能异常 p1

2.数据异常 p2 (空,类型不符合,长度不符合)

3.参数异常(多参,少参,无参,错误参数)

业务场景功能测试:多个接口被连续调用(模拟用户实际使用场景)

 尽量模拟用户实际使用场景, 

尽量用最少的用例覆盖最多的接口请求

一般覆盖正向测试即可

性能测试

响应时长:从发送请求到接收到服务器回发响应包所经历的时间

错误率:服务器运行出错的概率

吞吐量:服务器单位时间内处理请求的数量

服务器资源利用率:cpu,内存,网络,磁盘等硬件资源的占用率

安全测试

攻击安全:木马,病毒

业务安全:必须登录才能访问用户数据,敏感数据加密存储 

postman断言

1. 断言响应状态码

2.断言包含某字符串

3. 断言JSON数据

postman断言原理

Postman 关联

简介
当接口和接口之间,有依赖关系时,需要借助 postman 关联技术,来实现。
如: 登录接口 返回的 令牌数据,被 添加员工接口依赖。
添加员工接口 返回 员工id,被 查询员工接口依赖。

实现步骤

核心代码

用返回数据做变量作为数据来查百度

登录令牌来添加员工

postman参数化

简介
什么是参数化:
将 测试数据,组织到 数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标。
应用场景:
一般在测试同一个接口的不同 测试点时,只有测试数据不同。考虑使用 参数化。

数据文件简介

CSV:
优点:数据组织格式简单
缺点:
1. 不能测试 bool 类型。因为 postman 读取 csv后,将所有非数值类型数据,自动添加 ”“ 变为字符串
2. 不能存储复杂数据类型(元组、列表、字典)。
3. 不能实现 参数测试。
应用场景:数据量较大,数据组织格式简单。

JSON:
优点:
1. 可以测试 bool类型
2. 能使用 复杂数据类型
3. 可以实现 参数测试。
缺点:相同数据量,json文件要远大于 csv 文件。
应用场景:数据量较少,数据组织格式复杂。需要进行 参数测试!

导入数据文件到postman

csv文件预览,正确无乱码

json数据预览,正确无乱码

读取数据文件数据

理论

根据使用位置不同,有两种方法

1.在请求参数(行头体中)使用数据文件中的数据

csv文件/json文件:{{keyName/键名}}

2.代码中获取

postman内置data对象引用key

csv文件:data.字段名

json文件:data.键名  

  • JSON文件:最外层必须为 [] ,然后使用 {} 存放多组数据。

使用参数化查询不可以用send

Postman 控制台调试

有异常或出现失败的时候,可借助控制台进行查看分析。

4.1 配置好 生成测试报告环境中

安装node.js

#安装 双击.msi文件,一路下一步安装即可。无需特殊设定。 #测试安装成功 npm -V

安装newman

#安装newman
npm install -g newman
#测试安装成功
newman -V

#安装newman插件 -标准版
npm install -g newman-reporter-html

#安装newman插件 -扩展版 (最好使用这个)
npm install -g    newman-reporter-htmlextra

4.2 导入和导出 测试用例集

导出用例集

导入用例集

导出环境(有环境约束,需要连同环境一同导出)

生成测试报告文件

测试统计分析 + 测试结果确认 Newman生成测试报告

newman run 用例集文件.json -e 环境文件.json -d 数据文件.json/.csv -r htmlextra --reporter-htmlextra-export 测试报告名.html

newman run <测试脚本文件路径> -e <环境变量文件路径>  -d 数据文件.json/.csv -r html --reporter-html-export <测试报告输出路径>

newman  run "D:\Desktop\test1\login.postman_collection.json" -e "D:\Desktop\test1\testenv.postman_environment.json" -d "D:\Desktop\test1\login.json" -r  html --reporter-html-export "D:\Desktop\test1"

# 完整命令
newman run 用例集文件.json  -e  环境文件.json  -d  数据文件.json/.csv  -r  htmlextra  --reporter-htmlextra-export  测试报告名.html-e 和 -d  是非必须的。
如果没有使用  环境,不需要指定  -e
如果没有使用数据文件(做参数化), 不需要指定-d命令说明:
● run xx.json:执行测试集文件
● -e source:环境变量文件
● -d source:测试数据文件
● -r html:生成测试报告类型
● --reporter-html- export source:存放报告的路径

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

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

相关文章

微信小游戏5月畅销榜,新老产品更替显著,亿级爆款频出

小游戏由于微信的平台扶持&#xff0c;被视为可以大力发掘的蓝海&#xff0c;成为国内游戏最大的增长机会之一&#xff0c;随着越来越多的大厂和中小厂转向了小游戏赛道&#xff0c;每个月的小游戏畅销榜单都有不同变化。 5月的小游戏畅销榜显示&#xff0c;小游戏市场正经历显…

互联网宗教信息服务许可证怎么办理?

一、什么是互联网宗教信息 互联网宗教信息是指通过网站、应用程序、论坛、博客、微博、公众账号、即时通讯工具、网络直播等形式&#xff0c;以图文或音视频等方式传播有关宗教教义教规、宗教知识、宗教文化、宗教活动等涉及宗教的信息。 根据《互联网宗教信息服务管理办法》…

【 Python高级编程】Pythonz中Pandas表格读取与数据处理

Python中的Pandas表格读取与数据处理 Pandas 是 Python 中一个强大的数据处理与分析库&#xff0c;特别适合处理表格数据。本文将介绍如何使用 Pandas 读取表格文件并进行基本的数据处理操作。 一、读取表格数据 Pandas 可以读取多种格式的表格数据&#xff0c;常见的有 CSV…

Python深度学习:Bi-LSTM和LSTM在网络上有什么区别,对比来看

文章目录 LSTM代码解释类定义和构造函数前向传播方法 (`forward`)总结Bi-LSTMLSTM 代码 class BaseLSTMModel(nn.Module):def __init__(self, input_dim, hidden_dim, layer_dim, class_num):super().__init__

[BSidesCF 2020]Had a bad day1

看到页面有两个按钮 先随便点一个试一下&#xff0c;当我们点击之后发现url是有变动的 感觉url是有点东西的&#xff0c;可能是某种注入&#xff0c;先尝试一下sql注入&#xff0c;发现给出了报错 通过报错我们可以确定是文件包含漏洞&#xff0c;那我们试试php伪协议去读取一下…

保密工作应党而生、伴党而行、为党而兴

1.&#xff08;C &#xff09;工作应党而生、伴党而行、为党而兴&#xff0c;始终是党和国家的一项重要工作。 A. 农业 B. 国防 C. 保密 D. 文化 2.机关、单位对所产生的国家秘密事项&#xff0c;应当按照国家秘密及其密级的具体范围的规定确定密级&#xff0c;同时确定&#x…

JDBC操作数据库的方法

目录 一、JDBC介绍 二、使用方法&#xff08;以MySQL为例&#xff09; &#xff08;1&#xff09;MySQL的jar包&#xff0c;导入到IDEA &#xff08;2&#xff09;使用代码&#xff0c;操作数据库 1&#xff09;设置数据源 1.创建MysqlDataSource对象&#xff0c;使用set…

国产MCU芯片(2):东软MCU概览

前言: 国产芯片替代的一个主战场之一就是mcu,可以说很多国内芯片设计公司都打算或者已经在设计甚至有了一款或多款的量产产品了,这也是国际大背景决定的。过去的家电市场、过去的汽车电子市场,的确国产芯片的身影不是很常见,如今不同了,很多fabless投身这个行业,一种是…

【数据结构】排序(下)

个人主页~ 排序&#xff08;上&#xff09; 栈和队列 排序 二、常见排序的实现8、快速排序的优化9、非递归快速排序&#xff08;1&#xff09;基本思想&#xff08;2&#xff09;代码实现&#xff08;3&#xff09;时间复杂度&#xff08;4&#xff09;空间复杂度 10、归并排序…

一个基于大模型的多功能的本地网页语音合成工具

ChatTTS-ui 是一个开源项目&#xff0c;这是一个利用 ChatTTS 技术将文本转换为语音的本地网页界面工具。它不仅支持中英文和数字的混合输入&#xff0c;还提供了丰富的API接口&#xff0c;为开发者和用户提供了极大的便利。 项目地址&#xff1a;https://github.com/jianchang…

1.华为路由器-三层交换机-二层交换机组网连接

AR1配置GE 0/0/0接口IP [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0] [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24 [Huawei]iP route-static 192.168.0.0 16 1.1.1.2三层交换机配置如下 创建vlan [Huawei]vlan batch 10 20配置接口ip [Huawei]int g0/0/1 [Huawei…

git diff 命令

目录标题 [Q&A] git diff 作用常见用法比较工作目录与暂存区比较暂存区与最近一次提交比较工作目录与最近一次提交比较两个具体的提交之间差异 [Q&A] git diff 作用 git diff 用于展示不同版本之间文件内容的变化。 常见用法 比较工作目录与暂存区 显示工作目录中尚…

API接口设计的18条规范

API接口设计的18条规范 签名 目的&#xff1a;防止数据被篡改 实现方法&#xff1a; 接口请求方将请求参数、时间戳和密钥拼接成一个字符串使用MD5等hash算法生成签名sign在请求参数或请求头中增加sign参数&#xff0c;传递给API接口API接口网关服务验证传递的sign值&#…

数电逻辑门电路分析和Digital仿真

文章目录 1. 逻辑门电路 2. 非门&#xff08;NOT Gate&#xff09; 3. 与门&#xff08;AND Gate&#xff09; 4. 或门&#xff08;OR Gate&#xff09; 5. 与非门&#xff08;NAND Gate&#xff09; 6. 或非门&#xff08;NOR Gate&#xff09; 7. 异或门&#xff08;XO…

pinocchio计算MPC控制状态方程AB矩阵

pinocchio计算MPC控制状态方程AB矩阵 Pinocchio是一个用于机器人动力学和运动学计算的库,广泛应用于机器人控制和仿真中。为了在MPC控制中使用Pinocchio计算状态方程的线性化矩阵 A 和 B,需要以下步骤: 1、初始化机器人模型和数据结构: 使用Pinocchio加载机器人模型。初始…

开源模型应用落地-LangChain高阶-LCEL-表达式语言(七)

一、前言 尽管现在的大语言模型已经非常强大&#xff0c;可以解决许多问题&#xff0c;但在处理复杂情况时&#xff0c;仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而&#xff0c;现在可以利用langchain来使得模型的应用变得更加直接和简单。 LCEL是什么&…

每天五分钟深度学习框架pytorch:多维tensor向量在某一维度的拼接和分割

本文重点 在深度学习中,我们常常需要完成多个向量拼接,同时也要完成向量的分割,在pytorch中已经有封装好的库,我们可以直接调用完成这部分任务。 Cat拼接 c=torch.cat([a,b],dim=0)表示将a和b按0维度进行拼接,需要注意再非dim维度,两个矩阵的维度必须是一致的,不然会拼…

单调栈(续)、由斐波那契数列讲述矩阵快速降幂技巧

在这里先接上一篇文章单调栈&#xff0c;这里还有单调栈的一道题 题目一&#xff08;单调栈续&#xff09; 给定一个数组arr&#xff0c; 返回所有子数组最小值的累加和 就是一个数组&#xff0c;有很多的子数组&#xff0c;每个数组肯定有一个最小值&#xff0c;要把所有子…

Caffe、PyTorch、Scikit-learn、Spark MLlib 和 TensorFlowOnSpark 概述

在 AI 框架方面,有几种工具可用于图像分类、视觉和语音等任务。有些很受欢迎,如 PyTorch 和 Caffe,而另一些则更受限制。以下是四种流行的 AI 工具的亮点。 Caffee Caffee是贾扬青在加州大学伯克利分校(UC Berkeley)时开发的深度学习框架。该工具可用于图像分类、语音和…

MySQL中的复合查询与表的内外连接解析

在MySQL中&#xff0c;复合查询通常指的是涉及多个表或多个查询条件的查询。而表的内外连接&#xff08;INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL OUTER JOIN&#xff0c;但MySQL不直接支持FULL OUTER JOIN&#xff09;则是复合查询中常用的连接技术&#xff0c;用于从多个表…