接口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,一经查实,立即删除!

相关文章

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

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

[BSidesCF 2020]Had a bad day1

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

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…

数电逻辑门电路分析和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…

开源模型应用落地-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)时开发的深度学习框架。该工具可用于图像分类、语音和…

胡说八道(24.6.12)——数字电子技术以及Modelsim

上回书说到数电中的最常用的表达式——逻辑表达式(由布尔代数组成)以及常用的两种图表——真值表(真值表表示的是所有的输入可能的线性组合以及输出)和卡诺图(卡诺图则是一种化简工具&#xff0c;排除冗余项&#xff0c;合并可合并项)。 今天&#xff0c;先来看看昨天说的基本逻…

DP:01背包问题

一、背包问题的概述 背包问题是⼀种组合优化的NP完全问题。 本质上是为了找出“带有限制条件的组合最优解” 1、根据物品的个数&#xff0c;分为如下几类&#xff1a; • 01背包问题&#xff1a;每个物品只有⼀个&#xff08;重点掌握&#xff09;• 完全背包问题&#xff1…

ffmpeg封装和解封装介绍-(10)综合完成视频重编码为h265,解封装解码编码再封装

主函数逐句解析&#xff1a; 由于代码太多我们只解析主函数&#xff0c;&#xff08;其他封装函数见前面文章&#xff0c;同时用到了解码编码封装代码&#xff09;。 初始化和参数处理 int main(int argc, char* argv[]) {/// 输入参数处理string useage "124_test_x…

【计算机网络】已解决:“‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”报错

文章目录 一、问题分析背景二、可能出错的原因三、错误代码示例四、正确解决方法与示例五、注意事项 已解决“‘ping’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件”报错 一、问题分析背景 在Windows操作系统中&#xff0c;ping 命令是一个常用的网络诊断…

线程池ThreadPoolExecutor使用指南

线程池ThreadPoolExecutor使用指南 &#x1f9d0;使用线程池的好处是什么&#xff1f; 统一管理&#xff0c;减少资源获取创建的开销&#xff0c;提高利用率。 &#x1f527;线程池的参数 ​ThreadPoolExecutor​ 3 个最重要的参数&#xff1a; ​corePoolSize​ : 任务队列…

docker login 报错: http: server gave HTTP response to HTTPS client

环境&#xff1a; 自建 Harbor、Docker 1. 问题分析 # 命令&#xff0c;这里用的是 IP&#xff0c;可以为域名 docker login -u test 172.16.51.182:31120 # 输入密码 Password:# 报错如下&#xff1a; Error response from daemon: Get "https://172.16.51.182:31120/…

[Algorithm][贪心][增减字符串匹配][分发饼干][最优除法][跳跃游戏Ⅱ][跳跃游戏]详细讲解

目录 1.增减字符串匹配1.题目链接2.算法原理详解3.代码实现 2.分发饼干1.题目链接2.算法原理详解3.代码实现 3.最优除法1.题目链接2.算法原理详解3.代码实现 4.跳跃游戏 II1.题目链接2.算法原理详解3.代码实现 5.跳跃游戏1.题目链接2.算法原理详解3.代码实现 1.增减字符串匹配 …

期末复习6--链表头插法(逆序)尾插法(顺序)---输出链表

头插法 #include <stdio.h> #include <stdlib.h>struct Node //定义结构体 {char data; //数据域struct Node * next; //指针域 };/* 请在这里填写答案 */void PrintList (struct Node * head) {struct Node * s;if(head NULL){printf("None&qu…